示例#1
0
    def test_attribute_access(self):

        from oop_challenge import SuperDictionary

        a = random.choice(string.ascii_letters) + secrets.token_hex(2)

        with self.assertRaises(AttributeError):
            o = SuperDictionary()
            getattr(o, a)

        with self.assertRaises(KeyError):
            o = SuperDictionary()
            o[a]
示例#2
0
    def test_data_integrity_on_instance(self):
        from oop_challenge import SuperDictionary
        random.seed()

        d = SuperDictionary()
        key = random.choice(string.ascii_letters) + secrets.token_hex(4)
        data = secrets.token_hex(5)
        d[key] = data

        self.assertEqual(d[key], data)
        self.assertEqual(getattr(d, key), data)

        for i in range(1000):
            d[random.choice(string.ascii_letters) +
              secrets.token_hex(4)] = secrets.token_hex(5)

        self.assertEqual(d[key], data)
        self.assertEqual(getattr(d, key), data)

        d[key] = secrets.token_hex(6)

        self.assertNotEqual(d[key], data)
        self.assertNotEqual(getattr(d, key), data)

        del d[key]
        with self.assertRaises(KeyError):
            d[key]
        with self.assertRaises(AttributeError):
            getattr(d, key)
示例#3
0
 def test_access_on_instance(self):
     from oop_challenge import SuperDictionary
     d = SuperDictionary()
     with self.assertRaises(KeyError):
         d[random.choice(string.ascii_letters) + secrets.token_hex(2)]
     with self.assertRaises(AttributeError):
         getattr(d,
                 random.choice(string.ascii_letters) + secrets.token_hex(2))
示例#4
0
    def test_attribute_assignment_on_instance(self):
        from oop_challenge import SuperDictionary

        k = random.choice(string.ascii_letters) + secrets.token_hex(2)
        v = secrets.token_hex(4)
        d = SuperDictionary()

        setattr(d, k, v)
        self.assertEqual(v, getattr(d, k))
        self.assertEqual(v, d[k])
示例#5
0
    def test_data_integrity_overall(self):
        from oop_challenge import SuperDictionary
        random.seed()

        key = random.choice(string.ascii_letters) + secrets.token_hex(4)
        value = secrets.token_hex(4)
        SuperDictionary[key] = value
        self.assertEqual(value, SuperDictionary[key])
        self.assertEqual(value, SuperDictionary()[key])
        self.assertEqual(value, getattr(SuperDictionary, key))
        self.assertEqual(value, getattr(SuperDictionary(), key))

        key = random.choice(string.ascii_letters) + secrets.token_hex(4)
        value = secrets.token_hex(4)
        SuperDictionary()[key] = value
        self.assertEqual(value, SuperDictionary[key])
        self.assertEqual(value, SuperDictionary()[key])
        self.assertEqual(value, getattr(SuperDictionary, key))
        self.assertEqual(value, getattr(SuperDictionary(), key))

        key = random.choice(string.ascii_letters) + secrets.token_hex(4)
        value = secrets.token_hex(4)
        setattr(SuperDictionary, key, value)
        self.assertEqual(value, SuperDictionary[key])
        self.assertEqual(value, SuperDictionary()[key])
        self.assertEqual(value, getattr(SuperDictionary, key))
        self.assertEqual(value, getattr(SuperDictionary(), key))

        key = random.choice(string.ascii_letters) + secrets.token_hex(4)
        value = secrets.token_hex(4)
        setattr(SuperDictionary(), key, value)
        self.assertEqual(value, SuperDictionary[key])
        self.assertEqual(value, SuperDictionary()[key])
        self.assertEqual(value, getattr(SuperDictionary, key))
        self.assertEqual(value, getattr(SuperDictionary(), key))

        key = random.choice(string.ascii_letters) + secrets.token_hex(4)
        value = secrets.token_hex(4)
        setattr(SuperDictionary(), key, value)
        self.assertEqual(value, SuperDictionary[key])
        self.assertEqual(value, SuperDictionary()[key])
        self.assertEqual(value, getattr(SuperDictionary, key))
        self.assertEqual(value, getattr(SuperDictionary(), key))
        del SuperDictionary[key]
        with self.assertRaises(AttributeError):
            getattr(SuperDictionary, key)
        with self.assertRaises(AttributeError):
            getattr(SuperDictionary(), key)
        with self.assertRaises(KeyError):
            SuperDictionary[key]
        with self.assertRaises(KeyError):
            SuperDictionary()[key]

        key = random.choice(string.ascii_letters) + secrets.token_hex(4)
        value = secrets.token_hex(4)
        setattr(SuperDictionary, key, value)
        self.assertEqual(value, SuperDictionary[key])
        self.assertEqual(value, SuperDictionary()[key])
        self.assertEqual(value, getattr(SuperDictionary, key))
        self.assertEqual(value, getattr(SuperDictionary(), key))
        del SuperDictionary()[key]
        with self.assertRaises(AttributeError):
            getattr(SuperDictionary, key)
        with self.assertRaises(AttributeError):
            getattr(SuperDictionary(), key)
        with self.assertRaises(KeyError):
            SuperDictionary[key]
        with self.assertRaises(KeyError):
            SuperDictionary()[key]
示例#6
0
 def test_deletion_on_instance(self):
     from oop_challenge import SuperDictionary
     d = SuperDictionary()
     with self.assertRaises(KeyError):
         del d[random.choice(string.ascii_letters) + secrets.token_hex(2)]
示例#7
0
 def test_insertion_on_instance(self):
     from oop_challenge import SuperDictionary
     d = SuperDictionary()
     d[random.choice(string.ascii_letters) +
       secrets.token_hex(2)] = secrets.token_hex(2)
示例#8
0
    def test_identity(self):
        from oop_challenge import SuperDictionary

        self.assertIs(SuperDictionary(), SuperDictionary())
        self.assertIs(type(SuperDictionary()), SuperDictionary)
示例#9
0
 def setUp(self):
     from oop_challenge import SuperDictionary
     try:
         SuperDictionary()
     except ChallengeNotAttempted:
         self.skipTest("Challenge 8 not attempted")