Exemplo n.º 1
0
class TestCopyResultExclude(unittest.TestCase):
    def setUp(self):
        class DummyClass():
            def __init__(self):
                self.bar = [1, 2, 3]
                self.a = {
                    "b": 2,
                    "c": 3,
                }
                self.b = {
                    "c": 3,
                    "d": 4,
                }

        self.foo = DummyClass()
        self.cb = CallbackBase()

    def tearDown(self):
        pass

    def test_copy_logic(self):
        res = self.cb._copy_result_exclude(self.foo, ())
        self.assertEqual(self.foo.bar, res.bar)

    def test_copy_deep(self):
        res = self.cb._copy_result_exclude(self.foo, ())
        self.assertNotEqual(id(self.foo.bar), id(res.bar))

    def test_no_exclude(self):
        res = self.cb._copy_result_exclude(self.foo, ())
        self.assertEqual(self.foo.bar, res.bar)
        self.assertEqual(self.foo.a, res.a)
        self.assertEqual(self.foo.b, res.b)

    def test_exclude(self):
        res = self.cb._copy_result_exclude(self.foo, ['bar', 'b'])
        self.assertIsNone(res.bar)
        self.assertIsNone(res.b)
        self.assertEqual(self.foo.a, res.a)

    def test_result_unmodified(self):
        bar_id = id(self.foo.bar)
        a_id = id(self.foo.a)
        res = self.cb._copy_result_exclude(self.foo, ['bar', 'a'])

        self.assertEqual(self.foo.bar, [1, 2, 3])
        self.assertEqual(bar_id, id(self.foo.bar))

        self.assertEqual(self.foo.a, dict(b=2, c=3))
        self.assertEqual(a_id, id(self.foo.a))

        self.assertRaises(AttributeError, self.cb._copy_result_exclude,
                          self.foo, ['a', 'c', 'bar'])
Exemplo n.º 2
0
class TestCopyResultExclude(unittest.TestCase):
    def setUp(self):
        class DummyClass:
            def __init__(self):
                self.bar = [1, 2, 3]
                self.a = {"b": 2, "c": 3}
                self.b = {"c": 3, "d": 4}

        self.foo = DummyClass()
        self.cb = CallbackBase()

    def tearDown(self):
        pass

    def test_copy_logic(self):
        res = self.cb._copy_result_exclude(self.foo, ())
        self.assertEqual(self.foo.bar, res.bar)

    def test_copy_deep(self):
        res = self.cb._copy_result_exclude(self.foo, ())
        self.assertNotEqual(id(self.foo.bar), id(res.bar))

    def test_no_exclude(self):
        res = self.cb._copy_result_exclude(self.foo, ())
        self.assertEqual(self.foo.bar, res.bar)
        self.assertEqual(self.foo.a, res.a)
        self.assertEqual(self.foo.b, res.b)

    def test_exclude(self):
        res = self.cb._copy_result_exclude(self.foo, ["bar", "b"])
        self.assertIsNone(res.bar)
        self.assertIsNone(res.b)
        self.assertEqual(self.foo.a, res.a)

    def test_result_unmodified(self):
        bar_id = id(self.foo.bar)
        a_id = id(self.foo.a)
        res = self.cb._copy_result_exclude(self.foo, ["bar", "a"])

        self.assertEqual(self.foo.bar, [1, 2, 3])
        self.assertEqual(bar_id, id(self.foo.bar))

        self.assertEqual(self.foo.a, dict(b=2, c=3))
        self.assertEqual(a_id, id(self.foo.a))

        self.assertRaises(AttributeError, self.cb._copy_result_exclude, self.foo, ["a", "c", "bar"])