1{
2 lib,
3 blinker,
4 brotli,
5 buildPythonPackage,
6 certifi,
7 fetchFromGitHub,
8 h2,
9 hyperframe,
10 kaitaistruct,
11 pyasn1,
12 httpbin,
13 pyopenssl,
14 pyparsing,
15 pysocks,
16 gunicorn,
17 pytestCheckHook,
18 pythonOlder,
19 selenium,
20 setuptools,
21 wsproto,
22 zstandard,
23}:
24
25buildPythonPackage rec {
26 pname = "selenium-wire";
27 version = "5.1.0";
28 pyproject = true;
29
30 disabled = pythonOlder "3.7";
31
32 src = fetchFromGitHub {
33 owner = "wkeeling";
34 repo = "selenium-wire";
35 tag = version;
36 hash = "sha256-KgaDxHS0dAK6CT53L1qqx1aORMmkeaiXAUtGC82hiIQ=";
37 };
38
39 build-system = [ setuptools ];
40
41 dependencies = [
42 blinker
43 brotli
44 certifi
45 h2
46 hyperframe
47 kaitaistruct
48 pyasn1
49 pyopenssl
50 pyparsing
51 pysocks
52 selenium
53 wsproto
54 zstandard
55 ];
56
57 nativeCheckInputs = [
58 gunicorn
59 httpbin
60 pytestCheckHook
61 ];
62
63 pythonImportsCheck = [ "seleniumwire" ];
64
65 disabledTestPaths = [
66 # Don't run End2End tests
67 "tests/end2end/test_end2end.py"
68 ];
69
70 meta = with lib; {
71 description = "Extends Selenium's Python bindings to give you the ability to inspect requests made by the browser";
72 homepage = "https://github.com/wkeeling/selenium-wire";
73 changelog = "https://github.com/wkeeling/selenium-wire/blob/${version}/HISTORY.rst";
74 license = licenses.mit;
75 maintainers = with maintainers; [ fab ];
76 broken = versionAtLeast blinker.version "1.8";
77 };
78}