diff --git a/pkgs/development/python-modules/ical/default.nix b/pkgs/development/python-modules/ical/default.nix new file mode 100644 index 000000000000..d5ac5f4196ed --- /dev/null +++ b/pkgs/development/python-modules/ical/default.nix @@ -0,0 +1,56 @@ +{ lib +, python-dateutil +, buildPythonPackage +, fetchFromGitHub +, freezegun +, tzdata +, pyparsing +, pydantic +, pytest-asyncio +, pytest-benchmark +, pytest-golden +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "ical"; + version = "4.1.0"; + format = "setuptools"; + + disabled = pythonOlder "3.9"; + + src = fetchFromGitHub { + owner = "allenporter"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-pZtjGWmEVcHSCgiVTKoEaRvec02cz3x93W+UXx3J8gE="; + }; + + propagatedBuildInputs = [ + python-dateutil + tzdata + pydantic + pyparsing + ]; + + checkInputs = [ + freezegun + pytest-asyncio + pytest-benchmark + pytest-golden + pytestCheckHook + ]; + + pythonImportsCheck = [ + "ical" + ]; + + meta = with lib; { + description = "Library for handling iCalendar"; + homepage = "https://github.com/allenporter/ical"; + changelog = "https://github.com/allenporter/ical/releases/tag/${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/pytest-golden/default.nix b/pkgs/development/python-modules/pytest-golden/default.nix new file mode 100644 index 000000000000..d6fd3fe5d2d0 --- /dev/null +++ b/pkgs/development/python-modules/pytest-golden/default.nix @@ -0,0 +1,65 @@ +{ lib +, atomicwrites +, buildPythonPackage +, fetchFromGitHub + #, hatchling +, ruamel-yaml +, poetry +, pytest +, pytest-asyncio +, pytestCheckHook +, pythonOlder +, pythonRelaxDepsHook +, testfixtures +}: + +buildPythonPackage rec { + pname = "pytest-golden"; + version = "0.2.2"; + format = "pyproject"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "oprypin"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-l5fXWDK6gWJc3dkYFTokI9tWvawMRnF0td/lSwqkYXE="; + }; + + pythonRelaxDeps = [ + "testfixtures" + ]; + + nativeBuildInputs = [ + # hatchling used for > 0.2.2 + poetry + pythonRelaxDepsHook + ]; + + buildInputs = [ + pytest + ]; + + propagatedBuildInputs = [ + atomicwrites + ruamel-yaml + testfixtures + ]; + + checkInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ + "pytest_golden" + ]; + + meta = with lib; { + description = "Plugin for pytest that offloads expected outputs to data files"; + homepage = "https://github.com/oprypin/pytest-golden"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 576f36815c7a..06db4bb3052e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4371,6 +4371,8 @@ self: super: with self; { ibm-watson = callPackage ../development/python-modules/ibm-watson { }; + ical = callPackage ../development/python-modules/ical { }; + icalendar = callPackage ../development/python-modules/icalendar { }; icecream = callPackage ../development/python-modules/icecream { }; @@ -8749,6 +8751,8 @@ self: super: with self; { pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { }; + pytest-golden = callPackage ../development/python-modules/pytest-golden { }; + pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { }; pytest-html = callPackage ../development/python-modules/pytest-html { };