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