1{
2 lib,
3 buildPythonPackage,
4 django,
5 faker,
6 fetchPypi,
7 flask,
8 flask-sqlalchemy,
9 mongoengine,
10 pytestCheckHook,
11 pythonOlder,
12 sqlalchemy,
13 sqlalchemy-utils,
14}:
15
16buildPythonPackage rec {
17 pname = "factory-boy";
18 version = "3.3.0";
19 format = "setuptools";
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchPypi {
24 pname = "factory_boy";
25 inherit version;
26 hash = "sha256-vHbZfRplu9mEKm1yKIIJjrVJ7I7hCB+fsuj/KfDDAPE=";
27 };
28
29 postPatch = ''
30 substituteInPlace tests/test_version.py \
31 --replace '"3.2.1.dev0")' '"${version}")'
32 '';
33
34 propagatedBuildInputs = [ faker ];
35
36 nativeCheckInputs = [
37 django
38 flask
39 flask-sqlalchemy
40 mongoengine
41 pytestCheckHook
42 sqlalchemy
43 sqlalchemy-utils
44 ];
45
46 # Checks for MongoDB requires an a running DB
47 disabledTests = [ "MongoEngineTestCase" ];
48
49 disabledTestPaths = [
50 # incompatible with latest flask-sqlalchemy
51 "examples/flask_alchemy/test_demoapp.py"
52 ];
53
54 pythonImportsCheck = [ "factory" ];
55
56 meta = with lib; {
57 description = "Python package to create factories for complex objects";
58 homepage = "https://github.com/rbarrois/factory_boy";
59 changelog = "https://github.com/FactoryBoy/factory_boy/blob/${version}/docs/changelog.rst";
60 license = with licenses; [ mit ];
61 maintainers = with maintainers; [ fab ];
62 };
63}