Skip to content

Commit 82472d3

Browse files
committed
Fix #140: TypeError: sql_flush() got an unexpected keyword argument
1 parent 5dd1927 commit 82472d3

File tree

17 files changed

+95
-93
lines changed

17 files changed

+95
-93
lines changed

.travis.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ sudo: required
33

44
language: python
55
python:
6-
- "3.7"
6+
- "3.8"
77

88
before_script:
99
- echo "deb http://www.apache.org/dist/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
@@ -14,10 +14,12 @@ before_script:
1414

1515
env:
1616
matrix:
17-
- TOX_ENV=py37-django21
18-
- TOX_ENV=py37-django22
19-
- TOX_ENV=py37-django30
20-
- TOX_ENV=py37-djangomaster
17+
- TOX_ENV=django21
18+
- TOX_ENV=django22
19+
- TOX_ENV=django30
20+
- TOX_ENV=django31
21+
- TOX_ENV=django32
22+
- TOX_ENV=djangomaster
2123
global:
2224
- CASS_DRIVER_NO_CYTHON=1
2325
- CASS_HOST=127.0.0.1
@@ -44,4 +46,4 @@ install:
4446
- pip3 install tox-travis lz4
4547

4648
script:
47-
- wait-for-it 127.0.0.1:9042 -- tox -e $TOX_ENV
49+
- wait-for-it 127.0.0.1:9042 -t 120 -- tox -e $TOX_ENV

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.7
1+
FROM python:3.8
22
ENV PYTHONUNBUFFERED=1
33
ENV CASS_HOST=cassandra
44
RUN apt-get -y update

django_cassandra_engine/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# -*- coding: utf-8 -*-
33

44
# Do not forget to change version number in mkdocs.yml also!
5-
__version__ = (1, 6, 1)
5+
__version__ = (1, 6, 2)
66
__author__ = "Rafał Furmański"
77
__contact__ = "r.furmanski@gmail.com"
88
__homepage__ = "http://github.com/r4fek/django-cassandra-engine"

django_cassandra_engine/base/operations.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from django.db.backends.base.operations import BaseDatabaseOperations
2+
23
from django_cassandra_engine.utils import get_cassandra_connection
34

45

@@ -29,10 +30,9 @@ def prep_for_iexact_query(self, value):
2930
"""
3031
return value
3132

32-
def sql_flush(self, style, tables, sequences, allow_cascade=False):
33+
def sql_flush(self, style, tables, *args, **kwargs):
3334
"""
3435
Truncate all existing tables in current keyspace.
35-
3636
:returns: an empty list
3737
"""
3838

@@ -44,8 +44,11 @@ def sql_flush(self, style, tables, sequences, allow_cascade=False):
4444
return cql_list
4545
return []
4646

47-
def execute_sql_flush(self, using, cql_list):
48-
for cql in cql_list:
47+
def execute_sql_flush(self, *args):
48+
# In previous django versions first parameter was `using` and second `sql_list`.
49+
# In Django 3.1 only one parameter `sql_list` is present.
50+
# One thing is certain though: last parameter is `sql_list`
51+
for cql in args[-1]:
4952
self.connection.connection.execute(cql)
5053

5154
def prepare_sql_script(self, sql):

django_cassandra_engine/models/__init__.py

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,36 @@
1-
import logging
2-
import inspect
3-
import copy
4-
import warnings
5-
from operator import attrgetter
6-
import collections
71
from functools import partial
82
from itertools import chain
3+
from operator import attrgetter
4+
import collections
5+
import copy
6+
import inspect
7+
import logging
8+
import warnings
99

10-
import six
11-
from django.conf import settings
1210
from django.apps import apps
11+
from django.conf import settings
1312
from django.core import validators
14-
from django.db.models.base import ModelBase
15-
from django.utils.translation import ugettext_lazy as _
1613
from django.db.models import options
14+
from django.db.models.base import ModelBase
15+
from django.utils.translation import gettext_lazy as _
16+
import six
1717

18-
from ..compat import (BaseModel, ColumnDescriptor, ModelDefinitionException,
19-
ModelException, ModelMetaClass, OrderedDict, columns,
20-
query)
21-
from .constants import ORDER_BY_WARN, ORDER_BY_ERROR_HELP, PK_META_MISSING_HELP
22-
from . import django_field_methods
23-
from . import django_model_methods
24-
18+
from ..compat import (
19+
BaseModel,
20+
ColumnDescriptor,
21+
ModelDefinitionException,
22+
ModelException,
23+
ModelMetaClass,
24+
OrderedDict,
25+
columns,
26+
query,
27+
)
28+
from . import django_field_methods, django_model_methods
29+
from .constants import (
30+
ORDER_BY_ERROR_HELP,
31+
ORDER_BY_WARN,
32+
PK_META_MISSING_HELP,
33+
)
2534

2635
log = logging.getLogger(__name__)
2736
_django_manager_attr_names = ('objects', 'default_manager', '_default_manager',

django_cassandra_engine/models/django_field_methods.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import warnings
44

55
from django import forms
6-
from django.utils.functional import Promise
7-
from django.utils.text import capfirst
86
from django.core import checks, exceptions
9-
from django.utils.encoding import smart_text
107
from django.utils.deprecation import (
118
RemovedInNextVersionWarning as RemovedInDjango20Warning,
129
)
10+
from django.utils.encoding import smart_str
11+
from django.utils.functional import Promise
12+
from django.utils.text import capfirst
1313

1414
NOT_IMPL_MSG = 'Method not available on Cassandra model fields'
1515

@@ -21,7 +21,7 @@ def value_from_object(self, obj):
2121

2222
def value_to_string(self, obj):
2323
# Taken from django.db.models.fields.__init__
24-
return smart_text(self.value_from_object(obj))
24+
return smart_str(self.value_from_object(obj))
2525

2626

2727
def get_attname(self):

django_cassandra_engine/sessions/backends/db.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
from datetime import datetime
22
import logging
33

4+
from django.contrib.sessions.backends import db
45
from django.contrib.sessions.backends.db import (
5-
SessionStore as DjangoSessionStore
6+
SessionStore as DjangoSessionStore,
67
)
78
from django.core.exceptions import SuspiciousOperation
8-
from django.utils.encoding import force_text
9+
from django.utils.encoding import force_str
910
from django.utils.functional import cached_property
10-
from django.contrib.sessions.backends import db
1111

1212
# monkey patch for Django versions older than 1.9
1313
from django_cassandra_engine.sessions.models import Session as CassandraSession
14+
1415
db.Session = CassandraSession
1516

1617

@@ -52,7 +53,7 @@ def load(self):
5253
if isinstance(e, SuspiciousOperation):
5354
logger = logging.getLogger('django.security.%s' %
5455
e.__class__.__name__)
55-
logger.warning(force_text(e))
56+
logger.warning(force_str(e))
5657
self.create()
5758
return {}
5859

django_cassandra_engine/utils.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import inspect
22

3-
import django
43
from django.conf import settings
54
from django.db import DEFAULT_DB_ALIAS
5+
import django
66

77
from .compat import cqlengine
88

@@ -59,18 +59,13 @@ def get_installed_apps():
5959
"""
6060
Return list of all installed apps
6161
"""
62-
if django.VERSION >= (1, 7):
63-
from django.apps import apps
64-
65-
return [
66-
a.models_module
67-
for a in apps.get_app_configs()
68-
if a.models_module is not None
69-
]
70-
else:
71-
from django.db import models
72-
73-
return models.get_apps()
62+
from django.apps import apps
63+
64+
return [
65+
a.models_module
66+
for a in apps.get_app_configs()
67+
if a.models_module is not None
68+
]
7469

7570

7671
def get_cql_models(app, connection=None, keyspace=None):

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
cassandra-driver>=3.13
1+
cassandra-driver>=3.25
22
Django>=2.0
33
six>=1.6

testproject/app/tests/test_databasewrapper.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
from datetime import datetime
22

3+
from app.models import ExampleModel, ExampleModel2
34
from django.core.management import call_command
45
from django.core.management.sql import sql_flush
56
from mock import Mock
67

7-
from django_cassandra_engine.test import TestCase
88
from django_cassandra_engine.connection import CassandraConnection
9+
from django_cassandra_engine.test import TestCase
910
from django_cassandra_engine.utils import (
11+
get_cassandra_connection,
1012
get_cql_models,
1113
get_installed_apps,
12-
get_cassandra_connection,
1314
)
14-
from app.models import ExampleModel, ExampleModel2
1515

1616

1717
class DatabaseWrapperTestCase(TestCase):
@@ -52,7 +52,6 @@ def test_sql_flush_works(self):
5252
interactive=False,
5353
database=self.connection.alias,
5454
skip_checks=True,
55-
reset_sequences=False,
5655
allow_cascade=False,
5756
inhibit_post_migrate=True,
5857
)

0 commit comments

Comments
 (0)