Skip to main content

A browserless HTML testing library for Python

Project description

Unbrowsed

A browserless HTML testing library for Python, inspired by testing-library.

Overview

Unbrowsed allows you to test HTML without spawning a browser. It provides a simple, intuitive API for querying HTML elements similar to testing-library's approach, encouraging accessible and maintainable tests.

Features

  • Fast HTML parsing using selectolax
  • Browser-free testing of HTML content
  • Query functions that encourage accessible testing practices
  • Simple, Pythonic API

Installation

pip install unbrowsed

Usage

Basic Example

from unbrowsed import parse_html, query_by_label_text

# Parse HTML content
html = """
<form>
    <label for="username">Username</label>
    <input id="username" type="text">
    <label for="password">Password</label>
    <input id="password" type="password">
    <button type="submit">Login</button>
</form>
"""
dom = parse_html(html)

# Query elements by label text
username_input = query_by_label_text(dom, "Username")
assert username_input is not None

Development

Setup

# Clone the repository
git clone https://github.com/username/unbrowsed.git
cd unbrowsed

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install development dependencies
pip install -e ".[test]"

Running Tests

pytest

Releasing a New Version

To release a new version:

  1. Update the version in pyproject.toml
  2. Create and push a new tag:
git tag v0.1.0  # Use appropriate version
git push origin v0.1.0

This will trigger the CI pipeline to build and publish the package to PyPI automatically.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unbrowsed-0.1.0a2.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unbrowsed-0.1.0a2-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file unbrowsed-0.1.0a2.tar.gz.

File metadata

  • Download URL: unbrowsed-0.1.0a2.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for unbrowsed-0.1.0a2.tar.gz
Algorithm Hash digest
SHA256 d0da6c80571df5b13a78267293664937c240816df2071c266833b10ab6a83d01
MD5 c8b975de34f7ca2e1074e6b978758c6a
BLAKE2b-256 2f2bc4633651b2cc9cba4b880b348b6bc8a4aee8092abffecb2ebb5cfba6a582

See more details on using hashes here.

Provenance

The following attestation bundles were made for unbrowsed-0.1.0a2.tar.gz:

Publisher: test.yml on valentinogagliardi/unbrowsed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file unbrowsed-0.1.0a2-py3-none-any.whl.

File metadata

  • Download URL: unbrowsed-0.1.0a2-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for unbrowsed-0.1.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 4f0b3fcd073a51144efe172e06f44446544e563a0f2796bd74dea5317626be2c
MD5 4cf1616a26c0a8c7babe0b0f21e825eb
BLAKE2b-256 5a78f3f2696db7d66061e238510656f0dcf1d4ef997fd6de9d830b14523e543b

See more details on using hashes here.

Provenance

The following attestation bundles were made for unbrowsed-0.1.0a2-py3-none-any.whl:

Publisher: test.yml on valentinogagliardi/unbrowsed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page