bluezoo
A mock for the BlueZ D-Bus API
Decision gist · record as of 2026-08-14
Yes, if you are testing BlueZ integration on Linux and want to avoid hardware dependencies in CI/CD. The low install friction, active maintenance, and zero known vulnerabilities make it a reasonable choice for test suites. However, the young codebase (first release April 2025) and minimal adoption mean you should verify that the supported BlueZ interfaces match your application's needs before committing to it in production workflows. The GPL-2.0-only license requires careful review if your application will be distributed.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a D-Bus system (typically Linux), Python >=3.11, and a running D-Bus daemon; the package is designed for POSIX Linux environments.
- Low install friction with a pure-Python wheel.
- Actively maintained with recent commits; however, the package is young (first release April 2025) and has minimal adoption (3 repository stars), so production stability remains unproven.
License · maintenance · safety
GPL-2.0-only (copyleft) — Licensed under GPL-2.0-only (copyleft). Any application that links or distributes BlueZoo must comply with GPL v2 terms, including source code disclosure obligations.
last release 2025-09-15 (333 days) · last repo commit 2026-04-01 · 3 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 513,183 downloads/mo, #6,250 on PyPI
Alternatives
Verify before relying
pip install bluezoo
# Start a local D-Bus bus and set DBUS_SYSTEM_BUS_ADDRESS
dbus-daemon --session --print-address
# Run BlueZoo with a mock adapter
bluezoo --auto-enable --adapter 00:11:22:33:44:55- Completeness of BlueZ interface support beyond the documented subset (org.bluez.Adapter1, org.bluez.Device1, org.bluez.GattService1, etc.)
- Performance characteristics and scalability limits when simulating multiple adapters or devices under load
- Compatibility with specific BlueZ versions or BlueZ client libraries beyond bluetoothctl
What it is and what it does
BlueZoo is a D-Bus mock service that emulates the BlueZ Bluetooth stack, allowing developers to test Bluetooth-dependent applications without real Bluetooth hardware. It registers as the "org.bluez" D-Bus service and runs entirely in user space, making it suitable for automated test suites and CI/CD pipelines on Linux systems. The package provides a command-line interface to start mock adapters and a D-Bus manager interface to dynamically add or remove adapters during testing.
The package depends on coloredlogs, pyventus, pyparsing, and sdbus to handle D-Bus communication, event dispatching, and logging. It supports a subset of BlueZ interfaces including Adapter1, Device1, GattService1, GattCharacteristic1, GattDescriptor1, Agent1, AgentManager1, LEAdvertisement1, and LEAdvertisingManager1. Applications can interact with BlueZoo using standard BlueZ tools like bluetoothctl or D-Bus utilities (gdbus), making it a drop-in mock for testing without modifying application code.
Use it for
- Test Bluetooth device discovery and connection logic in CI/CD pipelines without physical hardware
- Develop and validate GATT service implementations for BLE peripherals in isolation
- Mock Bluetooth adapter state changes and device events for integration testing
- Verify BlueZ D-Bus API calls in applications without requiring root access to real Bluetooth hardware
- Simulate multiple Bluetooth adapters for testing multi-adapter scenarios
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are testing BlueZ integration on Linux and want to avoid hardware dependencies in CI/CD.
The low install friction, active maintenance, and zero known vulnerabilities make it a reasonable choice for test suites. However, the young codebase (first release April 2025) and minimal adoption mean you should verify that the supported BlueZ interfaces match your application's needs before committing to it in production workflows. The GPL-2.0-only license requires careful review if your application will be distributed.
Install
bluezoo on PyPI
Before you install
Low install friction with a pure-Python wheel. Actively maintained with recent commits; however, the package is young (first release April 2025) and has minimal adoption (3 repository stars), so production stability remains unproven.
Requires a D-Bus system (typically Linux), Python >=3.11, and a running D-Bus daemon; the package is designed for POSIX Linux environments.
License in practice
Licensed under GPL-2.0-only (copyleft). Any application that links or distributes BlueZoo must comply with GPL v2 terms, including source code disclosure obligations.
Quickstart
pip install bluezoo
# Start a local D-Bus bus and set DBUS_SYSTEM_BUS_ADDRESS
dbus-daemon --session --print-address
# Run BlueZoo with a mock adapter
bluezoo --auto-enable --adapter 00:11:22:33:44:55
Verify before relying
- Completeness of BlueZ interface support beyond the documented subset (org.bluez.Adapter1, org.bluez.Device1, org.bluez.GattService1, etc.)
- Performance characteristics and scalability limits when simulating multiple adapters or devices under load
- Compatibility with specific BlueZ versions or BlueZ client libraries beyond bluetoothctl
Package facts
| License | GPL-2.0-only copyleft |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagescoloredlogspyventuspyparsingsdbus |
| Maintenance | Actively maintained 333 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 513,183 / month, #6,250 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3Topic :: Software Development :: TestingTopic :: Software Development :: Testing :: Mocking |
Evidence: bluezoo-1.0.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “bluez d-bus mock testing”
- bluezooBlueZoo is a mock BlueZ D-Bus API service that lets you test…
- btsocketA Python library for controlling BlueZ Bluetooth adapters on Linux…
- jeepneyJeepney is a pure Python implementation of D-Bus messaging with an…
Give your agent the search over MCP, or paste the wish link into any chat.
More Testing packages
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
virtualenv creates isolated Python environments where packages can be installed independently without affecting the system Python or other projects.
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
pytest-asyncio is a pytest plugin that enables writing and running async test functions using the asyncio library, allowing developers to await code directly within test cases.
Install it if you write tests for any asyncio-based code.
A pytest plugin that generates test reports in Common Test Report Format (CTRF) as JSON, compatible with pytest-xdist and pytest-playwright for distributed and browser-based testing.
Install it if you need CTRF-formatted test output for CI/CD integration or cross-tool reporting.
See also btsocket · bluetooth-adapters · bluetooth-auto-recovery · cocotb-bus · usb-devices · jeepney · habluetooth · moto-ext · dbus-fast · bluetooth-data-tools