Skip to content

Commit f0b4fd4

Browse files
hukkinj1fantix
andauthored
Fix flake8 errors and add it to CI (#45)
* Fix flake8 errors and add it to CI * Use extras for test dependencies Co-authored-by: Fantix King <[email protected]>
1 parent 1282379 commit f0b4fd4

File tree

6 files changed

+36
-14
lines changed

6 files changed

+36
-14
lines changed

.github/workflows/tests.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,6 @@ jobs:
4949
- name: Test
5050
if: steps.release.outputs.version == 0
5151
run: |
52-
pip install -e .
52+
pip install -e .[test]
53+
flake8 immutables/ tests/
5354
python -m unittest -v tests.suite

immutables/map.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,12 @@ def map_bitindex(bitmap, bit):
4646
W_EMPTY, W_NEWNODE, W_NOT_FOUND = range(3)
4747
void = object()
4848

49+
4950
class _Unhashable:
5051
__slots__ = ()
5152
__hash__ = None
5253

54+
5355
_NULL = _Unhashable()
5456
del _Unhashable
5557

setup.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@
33
import setuptools
44

55

6+
# Minimal dependencies required to test immutables.
7+
TEST_DEPENDENCIES = [
8+
# pycodestyle is a dependency of flake8, but it must be frozen because
9+
# their combination breaks too often
10+
# (example breakage: https://gitlab.com/pycqa/flake8/issues/427)
11+
'flake8~=3.8.4',
12+
'pycodestyle~=2.6.0',
13+
]
14+
15+
EXTRA_DEPENDENCIES = {
16+
'test': TEST_DEPENDENCIES,
17+
}
18+
619
CFLAGS = ['-O2']
720
if platform.uname().system != 'Windows':
821
CFLAGS.extend(['-std=c99', '-fsigned-char', '-Wall',
@@ -73,4 +86,5 @@
7386
provides=['immutables'],
7487
include_package_data=True,
7588
ext_modules=ext_modules,
89+
extras_require=EXTRA_DEPENDENCIES,
7690
)

tests/test_issue24.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def test_bitmap_node_update_in_place_count(self):
5151
d = m.__dump__().splitlines()
5252
self.assertTrue(d)
5353
if d[0].startswith('HAMT'):
54-
header = d[1] # skip _map.Map.__dump__() header
54+
header = d[1] # skip _map.Map.__dump__() header
5555
else:
5656
header = d[0]
5757
self.dump_check_bitmap_node_count(header, 7)
@@ -66,7 +66,7 @@ def test_bitmap_node_delete_in_place_count(self):
6666
d = m2.__dump__().splitlines()
6767
self.assertTrue(d)
6868
if d[0].startswith('HAMT'):
69-
header = d[1] # skip _map.Map.__dump__() header
69+
header = d[1] # skip _map.Map.__dump__() header
7070
else:
7171
header = d[0]
7272
self.dump_check_bitmap_node_count(header, 4)
@@ -79,7 +79,7 @@ def test_collision_node_update_in_place_count(self):
7979
self.assertTrue(len(d) > 3)
8080
# get node headers
8181
if d[0].startswith('HAMT'):
82-
h1, h2 = d[1], d[3] # skip _map.Map.__dump__() header
82+
h1, h2 = d[1], d[3] # skip _map.Map.__dump__() header
8383
else:
8484
h1, h2 = d[0], d[2]
8585
self.dump_check_node_kind(h1, 'Bitmap')
@@ -96,12 +96,13 @@ def test_collision_node_delete_in_place_count(self):
9696
self.assertTrue(len(d) > 3)
9797
# get node headers
9898
if d[0].startswith('HAMT'):
99-
h1, h2 = d[1], d[3] # skip _map.Map.__dump__() header
99+
h1, h2 = d[1], d[3] # skip _map.Map.__dump__() header
100100
else:
101101
h1, h2 = d[0], d[2]
102102
self.dump_check_node_kind(h1, 'Bitmap')
103103
self.dump_check_collision_node_count(h2, 4)
104104

105+
105106
try:
106107
from immutables._map import Map as CMap
107108
except ImportError:

tests/test_map.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
import weakref
88

99
from immutables.map import Map as PyMap
10-
from immutables._testutils import * # NoQA
10+
from immutables._testutils import EqError
11+
from immutables._testutils import HashKey
12+
from immutables._testutils import HashKeyCrasher
13+
from immutables._testutils import HashingError
14+
from immutables._testutils import KeyStr
15+
from immutables._testutils import ReprError
1116

1217

1318
class BaseMapTest:
@@ -159,8 +164,6 @@ def test_map_collision_2(self):
159164
# <Key name:E hash:362244>: 'e'
160165
# <Key name:B hash:101>: 'b'
161166

162-
163-
164167
def test_map_stress_01(self):
165168
COLLECTION_SIZE = 7000
166169
TEST_ITERS_EVERY = 647
@@ -1235,7 +1238,6 @@ def test_map_mut_20(self):
12351238
# node to be converted into an array node
12361239
h = h.set(HashKey(i, i), i)
12371240

1238-
12391241
h = h.set(HashKey(18, '18-collision'), 18)
12401242

12411243
with h.mutate() as m:
@@ -1348,7 +1350,9 @@ def test_map_pickle(self):
13481350
with self.assertRaisesRegex(TypeError, "can('t|not) pickle"):
13491351
pickle.dumps(h.mutate())
13501352

1351-
@unittest.skipIf(sys.version_info < (3, 7, 0), "__class_getitem__ is not available")
1353+
@unittest.skipIf(
1354+
sys.version_info < (3, 7, 0), "__class_getitem__ is not available"
1355+
)
13521356
def test_map_is_subscriptable(self):
13531357
self.assertIs(self.Map[int, str], self.Map)
13541358

tests/test_none_keys.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import unittest
22

33
from immutables.map import map_hash, map_mask, Map as PyMap
4-
from immutables._testutils import * # NoQA
4+
from immutables._testutils import HashKey
55

66

77
none_hash = map_hash(None)
@@ -342,7 +342,7 @@ def test_collision_4(self):
342342
self.assertTrue(key4 in m3)
343343
self.assertEqual(m3[key2], 2)
344344
self.assertEqual(m3[key4], 4)
345-
self.assertFalse(None in m3)
345+
self.assertFalse(None in m3)
346346
with self.assertRaises(KeyError):
347347
m3.delete(None)
348348

@@ -352,7 +352,7 @@ def test_collision_4(self):
352352
self.assertTrue(key4 in m3)
353353
self.assertEqual(m3[None], 9)
354354
self.assertEqual(m3[key4], 4)
355-
self.assertFalse(key2 in m3)
355+
self.assertFalse(key2 in m3)
356356
with self.assertRaises(KeyError):
357357
m3.delete(key2)
358358

@@ -362,7 +362,7 @@ def test_collision_4(self):
362362
self.assertTrue(key2 in m3)
363363
self.assertEqual(m3[None], 9)
364364
self.assertEqual(m3[key2], 2)
365-
self.assertFalse(key4 in m3)
365+
self.assertFalse(key4 in m3)
366366
with self.assertRaises(KeyError):
367367
m3.delete(key4)
368368

0 commit comments

Comments
 (0)