[change] testPickingResults.py in accordance with bugfix
This commit is contained in:
parent
45370e2c67
commit
9929e3d441
@ -2,9 +2,20 @@ import unittest
|
|||||||
from pylot.core.pick.autopick import PickingResults
|
from pylot.core.pick.autopick import PickingResults
|
||||||
|
|
||||||
class TestPickingResults(unittest.TestCase):
|
class TestPickingResults(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.pr = PickingResults()
|
self.pr = PickingResults()
|
||||||
|
|
||||||
|
def test_non_existing_key_dot_access(self):
|
||||||
|
"""Accessing an attribute in the class that wasnt added to the dict should give a AttributeError"""
|
||||||
|
with self.assertRaises(AttributeError):
|
||||||
|
self.pr.doesntexist
|
||||||
|
|
||||||
|
def test_non_existing_key_dict_access(self):
|
||||||
|
"""Accessing a missing attribute in a dictionary throws a KeyError"""
|
||||||
|
with self.assertRaises(KeyError):
|
||||||
|
self.pr['keydoesnotexist']
|
||||||
|
|
||||||
def test_dot_member_creation(self):
|
def test_dot_member_creation(self):
|
||||||
self.pr.x = 0
|
self.pr.x = 0
|
||||||
self.assertEqual(self.pr.x, 0)
|
self.assertEqual(self.pr.x, 0)
|
||||||
@ -12,21 +23,16 @@ class TestPickingResults(unittest.TestCase):
|
|||||||
self.assertEqual(self.pr.x, 42)
|
self.assertEqual(self.pr.x, 42)
|
||||||
|
|
||||||
def test_dot_builtin_member(self):
|
def test_dot_builtin_member(self):
|
||||||
self.assertEqual(self.pr.Pflag, 0)
|
self.assertEqual(self.pr.weight, 4)
|
||||||
self.pr.Pflag = 99
|
self.pr.weight = 99
|
||||||
self.assertEqual(self.pr.Pflag, 99)
|
self.assertEqual(self.pr.weight, 99)
|
||||||
|
|
||||||
def test_key_access(self):
|
def test_key_access(self):
|
||||||
self.pr['y'] = 11
|
self.pr['y'] = 11
|
||||||
self.assertEqual(self.pr['y'], 11)
|
self.assertEqual(self.pr['y'], 11)
|
||||||
|
|
||||||
def test_builtin_fields(self):
|
def test_builtin_fields(self):
|
||||||
self.assertEqual(self.pr.Pflag, 0)
|
self.assertEqual(self.pr['weight'], 4)
|
||||||
|
|
||||||
def test_missing_attribute(self):
|
|
||||||
# accessing a missing attribute in a dictionary throws a KeyError
|
|
||||||
with self.assertRaises(KeyError):
|
|
||||||
self.pr['keydoesnotexist']
|
|
||||||
|
|
||||||
def test_in(self):
|
def test_in(self):
|
||||||
self.assertFalse('keydoesnotexist' in self.pr)
|
self.assertFalse('keydoesnotexist' in self.pr)
|
||||||
@ -48,6 +54,25 @@ class TestPickingResults(unittest.TestCase):
|
|||||||
|
|
||||||
def test_get_default(self):
|
def test_get_default(self):
|
||||||
self.assertEqual(self.pr.get('keynotexisting', 42), 42)
|
self.assertEqual(self.pr.get('keynotexisting', 42), 42)
|
||||||
pflag = self.pr.get('Pflag', -1)
|
weight = self.pr.get('weight', -1)
|
||||||
self.assertEqual(pflag, 0)
|
self.assertEqual(weight, 4)
|
||||||
self.assertNotEqual(pflag, -1)
|
self.assertNotEqual(weight, -1)
|
||||||
|
|
||||||
|
def test_dunder_attributes(self):
|
||||||
|
"""Storing Pythons special dunder method in a dictionary is valid and should not override the instances dunder
|
||||||
|
methods"""
|
||||||
|
prev_len = len(self.pr)
|
||||||
|
try:
|
||||||
|
self.pr['__len__'] = None
|
||||||
|
except Exception:
|
||||||
|
self.fail("test_dunder_attributes failed to add a dunder attribute to the dictionary keys")
|
||||||
|
try:
|
||||||
|
curr_len = len(self.pr)
|
||||||
|
except Exception:
|
||||||
|
self.fail("test_dunder_attributes overwrote an instance internal dunder method")
|
||||||
|
self.assertEqual(prev_len+1, curr_len) # +1 for the added __len__ key/value-pair
|
||||||
|
|
||||||
|
self.pr.__len__ = 42
|
||||||
|
|
||||||
|
self.assertEqual(42, self.pr['__len__'])
|
||||||
|
self.assertEqual(prev_len+1, curr_len, msg="__len__ was overwritten")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user