1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 django,
6 django-debug-toolbar,
7 psycopg2,
8 jinja2,
9 beautifulsoup4,
10 python,
11 pytz,
12}:
13
14buildPythonPackage rec {
15 pname = "django-cachalot";
16 version = "2.7.0";
17 format = "setuptools";
18
19 src = fetchFromGitHub {
20 owner = "noripyt";
21 repo = "django-cachalot";
22 tag = "v${version}";
23 hash = "sha256-Fi5UvqH2bVb4v/GWDkEYIcBMBVos+35g4kcEnZTOQvw=";
24 };
25
26 patches = [
27 # Disable tests for unsupported caching and database types which would
28 # require additional running backends
29 ./disable-unsupported-tests.patch
30 ];
31
32 propagatedBuildInputs = [ django ];
33
34 checkInputs = [
35 beautifulsoup4
36 django-debug-toolbar
37 psycopg2
38 jinja2
39 pytz
40 ];
41
42 pythonImportsCheck = [ "cachalot" ];
43
44 # disable broken pinning test
45 preCheck = ''
46 substituteInPlace cachalot/tests/read.py \
47 --replace-fail \
48 "def test_explain(" \
49 "def _test_explain("
50 '';
51
52 checkPhase = ''
53 runHook preCheck
54 ${python.interpreter} runtests.py
55 runHook postCheck
56 '';
57
58 meta = with lib; {
59 description = "No effort, no worry, maximum performance";
60 homepage = "https://github.com/noripyt/django-cachalot";
61 changelog = "https://github.com/noripyt/django-cachalot/blob/${src.rev}/CHANGELOG.rst";
62 license = licenses.bsd3;
63 maintainers = with maintainers; [ onny ];
64 };
65}