nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 buildPythonPackage,
6 python,
7 pytestCheckHook,
8 assertpy,
9 chardet,
10 freezegun,
11 mock,
12 path,
13 pyhamcrest,
14 pytest-html,
15 colorama,
16 cucumber-expressions,
17 cucumber-tag-expressions,
18 parse,
19 parse-type,
20 setuptools,
21 six,
22}:
23
24buildPythonPackage rec {
25 pname = "behave";
26 version = "1.3.3";
27 pyproject = true;
28
29 src = fetchFromGitHub {
30 owner = "behave";
31 repo = "behave";
32 tag = "v${version}";
33 hash = "sha256-sHsnBeyl0UJ0f7WcTUc+FhUxATh84RPxVE3TqGYosrs=";
34 };
35
36 build-system = [ setuptools ];
37
38 nativeCheckInputs = [
39 pytestCheckHook
40 assertpy
41 chardet
42 freezegun
43 mock
44 path
45 pyhamcrest
46 pytest-html
47 ];
48
49 pythonImportsCheck = [ "behave" ];
50
51 dependencies = [
52 colorama
53 cucumber-expressions
54 cucumber-tag-expressions
55 parse
56 parse-type
57 six
58 ];
59
60 postPatch = ''
61 patchShebangs bin
62 '';
63
64 # timing-based test flaky on Darwin
65 # https://github.com/NixOS/nixpkgs/pull/97737#issuecomment-691489824
66 disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
67 "test_step_decorator_async_run_until_complete"
68 ];
69
70 postCheck = ''
71 ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' features/
72 ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' tools/test-features/
73 ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' issue.features/
74 '';
75
76 meta = {
77 changelog = "https://github.com/behave/behave/blob/${src.tag}/CHANGES.rst";
78 homepage = "https://github.com/behave/behave";
79 description = "Behaviour-driven development, Python style";
80 mainProgram = "behave";
81 license = lib.licenses.bsd2;
82 maintainers = with lib.maintainers; [
83 alunduil
84 maxxk
85 ];
86 };
87}