Skip to content

Commit f8b64c4

Browse files
committed
Refactor code for improved readability and PEP 8 compliance
1 parent f56b85b commit f8b64c4

File tree

1 file changed

+27
-21
lines changed

1 file changed

+27
-21
lines changed

tests/utils.py

+27-21
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,65 @@
11
from operator import attrgetter
2-
32
from django.core.exceptions import ObjectDoesNotExist
43
from django.urls import NoReverseMatch
54

6-
75
class MockObject:
6+
"""
7+
A mock object for testing purposes.
8+
"""
9+
810
def __init__(self, **kwargs):
911
self._kwargs = kwargs
10-
for key, val in kwargs.items():
11-
setattr(self, key, val)
12+
for key, value in kwargs.items():
13+
setattr(self, key, value)
1214

1315
def __str__(self):
14-
kwargs_str = ', '.join([
15-
'%s=%s' % (key, value)
16-
for key, value in sorted(self._kwargs.items())
17-
])
18-
return '<MockObject %s>' % kwargs_str
16+
sorted_kwargs = ', '.join(['%s=%s' % (key, value) for key, value in sorted(self._kwargs.items())])
17+
return f'<MockObject {sorted_kwargs}>'
1918

2019

2120
class MockQueryset:
21+
"""
22+
A mock queryset for testing purposes.
23+
"""
24+
2225
def __init__(self, iterable):
2326
self.items = iterable
2427

25-
def __getitem__(self, val):
26-
return self.items[val]
28+
def __getitem__(self, index):
29+
return self.items[index]
2730

2831
def get(self, **lookup):
2932
for item in self.items:
30-
if all([
31-
attrgetter(key.replace('__', '.'))(item) == value
32-
for key, value in lookup.items()
33-
]):
33+
if all(attrgetter(key.replace('__', '.'))(item) == value for key, value in lookup.items()):
3434
return item
3535
raise ObjectDoesNotExist()
3636

3737

3838
class BadType:
3939
"""
40-
When used as a lookup with a `MockQueryset`, these objects
41-
will raise a `TypeError`, as occurs in Django when making
42-
queryset lookups with an incorrect type for the lookup value.
40+
Raise a `TypeError` when used as a lookup value with a `MockQueryset`.
41+
This behavior mimics Django's queryset lookups with incorrect types.
4342
"""
4443

4544
def __eq__(self):
4645
raise TypeError()
4746

4847

4948
def mock_reverse(view_name, args=None, kwargs=None, request=None, format=None):
49+
"""
50+
Mocked implementation of Django's reverse function for testing.
51+
"""
52+
5053
args = args or []
5154
kwargs = kwargs or {}
52-
value = (args + list(kwargs.values()) + ['-'])[0]
55+
first_value = (args + list(kwargs.values()) + ['-'])[0]
5356
prefix = 'http://example.org' if request else ''
54-
suffix = ('.' + format) if (format is not None) else ''
55-
return '%s/%s/%s%s/' % (prefix, view_name, value, suffix)
57+
suffix = f'.{format}' if format is not None else ''
58+
return f'{prefix}/{view_name}/{first_value}{suffix}/'
5659

5760

5861
def fail_reverse(view_name, args=None, kwargs=None, request=None, format=None):
62+
"""
63+
Mocked implementation of Django's reverse function to raise a NoReverseMatch for testing.
64+
"""
5965
raise NoReverseMatch()

0 commit comments

Comments
 (0)