Skip to content

Commit 216b0ad

Browse files
authored
Fix MockSet too many positional arguments error in python 3.8 (#129)
* Fix MockSet too many positional arguments error in python 3.8 * Fix python 2 metaclass backwards compatibility issue
1 parent 8ff87f1 commit 216b0ad

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

django_mock_queries/query.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import datetime
22
import random
33
from collections import OrderedDict, namedtuple
4+
from six import with_metaclass
45
try:
56
from unittest.mock import Mock, MagicMock, PropertyMock
67
except ImportError:
@@ -13,7 +14,14 @@
1314
)
1415

1516

16-
class MockSet(MagicMock):
17+
class MockSetMeta(type):
18+
def __call__(cls, *initial_items, **kwargs):
19+
obj = super(MockSetMeta, cls).__call__(**kwargs)
20+
obj.add(*initial_items)
21+
return obj
22+
23+
24+
class MockSet(with_metaclass(MockSetMeta, MagicMock)):
1725
EVENT_ADDED = 'added'
1826
EVENT_UPDATED = 'updated'
1927
EVENT_SAVED = 'saved'

0 commit comments

Comments
 (0)