diff --git a/pkgs/by-name/sm/smbcrawler/package.nix b/pkgs/by-name/sm/smbcrawler/package.nix new file mode 100644 index 000000000000..4938f1953c75 --- /dev/null +++ b/pkgs/by-name/sm/smbcrawler/package.nix @@ -0,0 +1,60 @@ +{ + lib, + fetchFromGitHub, + python3, +}: + +python3.pkgs.buildPythonApplication rec { + pname = "smbcrawler"; + version = "1.2.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "SySS-Research"; + repo = "smbcrawler"; + tag = version; + hash = "sha256-9hom/4wNCiBp70s0a3K4dq1BOcoVV+yAeiPQlvQ7yUw="; + }; + + build-system = with python3.pkgs; [ + hatch-vcs + hatchling + ]; + + dependencies = with python3.pkgs; [ + click + impacket + lxml + peewee + python-libnmap + python-magic + pyyaml + xdg-base-dirs + zundler + ]; + + optional-dependencies = with python3.pkgs; { + binary-conversion = [ + markitdown + ]; + }; + + nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ]; + + pythonImportsCheck = [ "smbcrawler" ]; + + disabledTests = [ + # Tests are container-based + "test_base_guest_access" + "test_full" + ]; + + meta = { + description = "Tool that takes credentials and a list of hosts and crawls through shares"; + homepage = "https://github.com/SySS-Research/smbcrawler"; + changelog = "https://github.com/SySS-Research/smbcrawler/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + mainProgram = "smbcrawler"; + }; +} diff --git a/pkgs/development/python-modules/pytest-docker/default.nix b/pkgs/development/python-modules/pytest-docker/default.nix new file mode 100644 index 000000000000..e16888e1b635 --- /dev/null +++ b/pkgs/development/python-modules/pytest-docker/default.nix @@ -0,0 +1,64 @@ +{ + lib, + attrs, + buildPythonPackage, + fetchFromGitHub, + py, + pytest-mypy, + pytest-pycodestyle, + pytest-pylint, + pytest, + pytestCheckHook, + requests, + setuptools, + types-requests, + types-setuptools, + writableTmpDirAsHomeHook, +}: + +buildPythonPackage rec { + pname = "pytest-docker"; + version = "3.2.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "avast"; + repo = "pytest-docker"; + tag = "v${version}"; + hash = "sha256-LV4v4vyfXwFHOYJdS3kPyPbFWpwXfx1rKZQfFQ0pdQ4="; + }; + + build-system = [ setuptools ]; + + buildInputs = [ pytest ]; + + dependencies = [ attrs ]; + + nativeCheckInputs = [ + py + pytest-mypy + pytest-pycodestyle + pytest-pylint + pytestCheckHook + requests + types-requests + types-setuptools + writableTmpDirAsHomeHook + ]; + + pythonImportsCheck = [ "pytest_docker" ]; + + disabledTests = [ + # Tests wants to run docker + "test_containers_and_volumes_get_cleaned_up" + "test_main_fixtures_work" + ]; + + meta = { + description = "Docker-based integration tests"; + homepage = "https://github.com/avast/pytest-docker"; + changelog = "https://github.com/avast/pytest-docker/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pytest-pycodestyle/default.nix b/pkgs/development/python-modules/pytest-pycodestyle/default.nix new file mode 100644 index 000000000000..f51e8d124a39 --- /dev/null +++ b/pkgs/development/python-modules/pytest-pycodestyle/default.nix @@ -0,0 +1,44 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pycodestyle, + pytest-isort, + pytest, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage rec { + pname = "pytest-pycodestyle"; + version = "2.5.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "henry0312"; + repo = "pytest-pycodestyle"; + tag = "v${version}"; + hash = "sha256-X/vacxI0RFHIqlZ2omzvvFDePS/SZYSFQHEmfcbvf/4="; + }; + + build-system = [ setuptools ]; + + buildInputs = [ pytest ]; + + dependencies = [ pycodestyle ]; + + nativeCheckInputs = [ + pytest-isort + pytestCheckHook + ]; + + pythonImportsCheck = [ "pytest_pycodestyle" ]; + + meta = { + description = "Pytest plugin to run pycodestyle"; + homepage = "https://github.com/henry0312/pytest-pycodestyle"; + changelog = "https://github.com/henry0312/pytest-pycodestyle/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/zundler/default.nix b/pkgs/development/python-modules/zundler/default.nix new file mode 100644 index 000000000000..2a1ac8f8195f --- /dev/null +++ b/pkgs/development/python-modules/zundler/default.nix @@ -0,0 +1,60 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + hatch-vcs, + hatchling, + lxml, + nox, + pytest-docker, + pytest-selenium, + pytestCheckHook, + python-magic, + selenium, + sphinx, +}: + +buildPythonPackage rec { + pname = "zundler"; + version = "0.3.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "AdrianVollmer"; + repo = "Zundler"; + tag = version; + hash = "sha256-RUzVeJLRB9y6lS0tCkseoFgND1MXT7s2o7vNuUpdRDE="; + }; + + build-system = [ + hatch-vcs + hatchling + ]; + + dependencies = [ + lxml + python-magic + sphinx + ]; + + nativeCheckInputs = [ + nox + pytestCheckHook + pytest-docker + pytest-selenium + selenium + ]; + + # Tests are container-based + doCheck = false; + + pythonImportsCheck = [ "zundler" ]; + + meta = { + description = "Bundle assets of distributed HTML docs into one self-contained HTML file"; + homepage = "https://github.com/AdrianVollmer/Zundler"; + changelog = "https://github.com/AdrianVollmer/Zundler/releases/tag/${src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 07df728ae783..05ae537ebe0e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -14478,6 +14478,8 @@ self: super: with self; { pytest-django = callPackage ../development/python-modules/pytest-django { }; + pytest-docker = callPackage ../development/python-modules/pytest-docker { }; + pytest-docker-tools = callPackage ../development/python-modules/pytest-docker-tools { }; pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { }; @@ -14592,6 +14594,8 @@ self: super: with self; { pytest-pudb = callPackage ../development/python-modules/pytest-pudb { }; + pytest-pycodestyle = callPackage ../development/python-modules/pytest-pycodestyle { }; + pytest-pylint = callPackage ../development/python-modules/pytest-pylint { }; pytest-pytestrail = callPackage ../development/python-modules/pytest-pytestrail { }; @@ -20646,6 +20650,8 @@ self: super: with self; { zulip-emoji-mapping = callPackage ../development/python-modules/zulip-emoji-mapping { }; + zundler = callPackage ../development/python-modules/zundler { }; + zwave-js-server-python = callPackage ../development/python-modules/zwave-js-server-python { }; zwave-me-ws = callPackage ../development/python-modules/zwave-me-ws { };