1{ lib
2, buildPythonPackage
3, isPy27
4, fetchFromGitHub
5, urllib3
6, selenium
7, cssselect
8, django
9, flask
10, lxml
11, pytestCheckHook
12, zope-testbrowser
13}:
14
15buildPythonPackage rec {
16 pname = "splinter";
17 version = "0.19.0";
18
19 disabled = isPy27;
20
21 format = "setuptools";
22
23 src = fetchFromGitHub {
24 owner = "cobrateam";
25 repo = "splinter";
26 rev = "refs/tags/${version}";
27 hash = "sha256-K10zrQOM/khVcf+OT4s5UCY8zE2+nWtaAkRLy9/feU0=";
28 };
29
30 propagatedBuildInputs = [
31 urllib3
32 ];
33
34 passthru.optional-dependencies = {
35 "zope.testbrowser" = [ zope-testbrowser lxml cssselect ];
36 django = [ django lxml cssselect ];
37 flask = [ flask lxml cssselect ];
38 selenium = [ selenium ];
39 };
40
41 nativeCheckInputs = [
42 pytestCheckHook
43 ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
44
45 disabledTests = [
46 # driver is present and fails with a different error during loading
47 "test_browser_local_driver_not_present"
48 "test_browser_log_missing_drivers"
49 "test_local_driver_not_present"
50 ];
51
52 disabledTestPaths = [
53 "samples"
54 # We run neither Chromium nor Firefox nor ...
55 "tests/test_async_finder.py"
56 "tests/test_element_is_visible.py"
57 "tests/test_html_snapshot.py"
58 "tests/test_iframes.py"
59 "tests/test_mouse_interaction.py"
60 "tests/test_popups.py"
61 "tests/test_screenshot.py"
62 "tests/test_shadow_root.py"
63 "tests/test_webdriver.py"
64 "tests/test_webdriver_chrome.py"
65 "tests/test_webdriver_edge_chromium.py"
66 "tests/test_webdriver_firefox.py"
67 "tests/test_webdriver_remote.py"
68 ];
69
70 pythonImportsCheck = [ "splinter" ];
71
72 meta = with lib; {
73 description = "Browser abstraction for web acceptance testing";
74 homepage = "https://github.com/cobrateam/splinter";
75 license = licenses.bsd3;
76 maintainers = with maintainers; [ dotlambda ];
77 };
78}