1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6 setuptools,
7 setuptools-scm,
8 django,
9 python-dateutil,
10 freezegun,
11 psycopg2,
12 postgresql,
13 postgresqlTestHook,
14 python,
15}:
16
17buildPythonPackage rec {
18 pname = "django-auditlog";
19 version = "3.2.1";
20 pyproject = true;
21
22 src = fetchFromGitHub {
23 owner = "jazzband";
24 repo = "django-auditlog";
25 tag = "v${version}";
26 hash = "sha256-159p82PT3za3wp2XhekGxy+NYxLyQfAyUOyhDjyr2CI=";
27 };
28
29 nativeBuildInputs = [
30 setuptools
31 setuptools-scm
32 ];
33
34 propagatedBuildInputs = [
35 django
36 python-dateutil
37 ];
38
39 nativeCheckInputs = [
40 freezegun
41 psycopg2
42 postgresql
43 postgresqlTestHook
44 ];
45
46 doCheck = stdenv.hostPlatform.isLinux; # postgres fails to allocate shm on darwin
47
48 postgresqlTestUserOptions = "LOGIN SUPERUSER";
49
50 checkPhase = ''
51 runHook preCheck
52
53 cd auditlog_tests
54 # strip escape codes otherwise tests fail
55 # see https://github.com/jazzband/django-auditlog/issues/644
56 TEST_DB_USER=$PGUSER \
57 TEST_DB_HOST=$PGHOST \
58 ${python.interpreter} ./manage.py test | cat
59 cd ..
60
61 runHook postCheck
62 '';
63
64 pythonImportsCheck = [ "auditlog" ];
65
66 meta = {
67 changelog = "https://github.com/jazzband/django-auditlog/blob/${src.tag}/CHANGELOG.md";
68 description = "Django app that keeps a log of changes made to an object";
69 downloadPage = "https://github.com/jazzband/django-auditlog";
70 license = lib.licenses.mit;
71 maintainers = with lib.maintainers; [ leona ];
72 };
73}