HTTPretty: Intercepting HTTP Requests for Python Testing
This repository profile is provided by osrepos.com, an open source repository discovery platform.

Summary
HTTPretty is a powerful Python library designed to intercept HTTP requests at the socket level, effectively faking the entire socket module. It provides a robust solution for mocking external HTTP services, making it ideal for test-driven development and reliable API integration testing. Developers can use HTTPretty to simulate various HTTP responses, ensuring comprehensive and isolated testing environments.
Repository Information
Topics
Click on any tag to explore related repositories
Use at your own risk
OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.
Introduction
HTTPretty is a Python library created by Gabriel Falcão that provides a comprehensive solution for mocking HTTP client requests. It operates by intercepting HTTP requests at the Python socket level, effectively faking the entire socket module. This capability makes HTTPretty an invaluable tool for developers working on API integrations, enabling them to simulate external service responses without making actual network calls. Inspired by FakeWeb, HTTPretty simplifies the process of creating isolated and repeatable tests for applications that interact with web services.
Installation
To get started with HTTPretty, you can easily install it using pip:
pip install httpretty
Examples
Simple Example
This example demonstrates how to register a GET request and assert the response and request details.
import sure
import httpretty
import requests
@httpretty.activate(verbose=True, allow_net_connect=False)
def test_httpbin():
httpretty.register_uri(
httpretty.GET,
"https://httpbin.org/ip",
body='{"origin": "127.0.0.1"}'
)
response = requests.get('https://httpbin.org/ip')
response.json().should.equal({'origin': '127.0.0.1'})
httpretty.latest_requests().should.have.length_of(1)
httpretty.last_request().should.equal(httpretty.latest_requests()[0])
httpretty.last_request().body.should.equal('{"origin": "127.0.0.1"}')
Checking Multiple Responses
This example shows how to register multiple responses for the same URL and verify the request bodies.
@httpretty.activate(verbose=True, allow_net_connect=False)
def test_post_bodies():
url = 'http://httpbin.org/post'
httpretty.register_uri(httpretty.POST, url, status=200)
httpretty.register_uri(httpretty.POST, url, status=400)
requests.post(url, data={'foo': 'bar'})
requests.post(url, data={'zoo': 'zoo'})
assert 'foo=bar' in httpretty.latest_requests()[0].body
assert 'zoo=bar' in httpretty.latest_requests()[1].body
Why Use HTTPretty?
HTTPretty is essential for robust software development, especially when dealing with external APIs. Its primary benefits include:
- Test-Driven Development (TDD) of API Integrations: Facilitates writing tests for API clients before or during implementation, ensuring correct behavior.
- Faking Responses of External APIs: Allows developers to simulate various API responses, including success, failure, and edge cases, without relying on actual external services.
- Recording and Playback of HTTP Requests: Useful for debugging, performance testing, and creating repeatable test scenarios.
- Isolation and Speed: By intercepting requests at the socket level, HTTPretty ensures tests are isolated from network latency and external service availability, leading to faster and more reliable test suites.
Links
Related repositories
Similar repositories that may be relevant next.

awesome-cli-coding-agents: A Curated Directory of Terminal-Native AI Tools
August 9, 2026
The `awesome-cli-coding-agents` repository offers a comprehensive, curated directory of over 100 terminal-native AI coding agents. These powerful tools operate directly within your command line, enabling autonomous code reading, editing, and execution. The list also covers various harnesses and orchestration solutions for managing these agents.

QwenPaw: Your Personal AI Assistant for Local and Cloud Deployment
August 7, 2026
QwenPaw is a powerful personal AI assistant designed for easy installation and deployment, either on your local machine or in the cloud. It supports multiple chat applications and offers highly extensible capabilities, making it a versatile tool for various AI-driven tasks. With its robust memory system and security features, QwenPaw aims to be an intuitive and private partner in your digital life.

DeepTutor: Lifelong Personalized Tutoring with AI Agents
August 7, 2026
DeepTutor is an advanced AI-powered platform designed for lifelong personalized tutoring, integrating various learning modes into a single, extensible system. It leverages large language models and multi-agent systems to offer features like interactive chat, quiz generation, and skill development. This project provides a comprehensive environment for learners and educators seeking intelligent, adaptive educational tools.

Memori: Agent-Native Memory Infrastructure for LLM Production Systems
August 6, 2026
Memori provides agent-native memory infrastructure, offering an LLM-agnostic layer that transforms agent execution and conversations into structured, persistent state. Designed for enterprise use, it seamlessly integrates with existing data infrastructure and supports various deployment environments, ensuring robust memory management for AI agents.
Source repository
Open the original repository on GitHub.