예제 #1
0
 def test_usage(self):
     book = sourcemap.Bookkeeper()
     book.foo = 123
     self.assertEqual(book.foo, 0)
     self.assertEqual(book.foo, 0)
     self.assertEqual(book._foo, 123)
     book.foo = 124
     self.assertEqual(book.foo, 1)
     self.assertEqual(book.foo, 1)
     self.assertEqual(book._foo, 124)
     book.foo = 1
     self.assertEqual(book.foo, -123)
     self.assertEqual(book.foo, -123)
     self.assertEqual(book._foo, 1)
     book.foo = 1
     self.assertEqual(book.foo, 0)
     self.assertEqual(book.foo, 0)
     self.assertEqual(book._foo, 1)
     book.foo = 1
     self.assertEqual(book.foo, 0)
     self.assertEqual(book.foo, 0)
     self.assertEqual(book._foo, 1)
     book.foo = 2
     book.foo = 2
     self.assertEqual(book.foo, 0)
     self.assertEqual(book._foo, 2)
예제 #2
0
 def test_del_reset(self):
     book = sourcemap.Bookkeeper()
     book.foo = 123
     book.foo = 124
     self.assertEqual(book.foo, 1)
     del book.foo
     self.assertEqual(book.foo, 0)
예제 #3
0
    def test_empty(self):
        book = sourcemap.Bookkeeper()
        with self.assertRaises(AttributeError) as e:
            book.foo
        self.assertEqual(
            e.exception.args[0], "'Bookkeeper' object has no attribute 'foo'")

        with self.assertRaises(AttributeError) as e:
            del book.foo
예제 #4
0
 def test_private_reset(self):
     book = sourcemap.Bookkeeper()
     book.foo = 123
     book.foo = 124
     self.assertEqual(book.foo, 1)
     book._foo = 1
     self.assertEqual(book.foo, 0)
     self.assertEqual(book._foo, 1)
     book._foo = 124
     self.assertEqual(book.foo, 0)
     self.assertEqual(book._foo, 124)
예제 #5
0
 def test_typecheck(self):
     book = sourcemap.Bookkeeper()
     with self.assertRaises(TypeError) as e:
         book.foo = 'notanint'
     self.assertEqual(
         e.exception.args[0], "assignment must be of type 'int'")