File: test__diff.py

package info (click to toggle)
python-mongomock 4.3.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,028 kB
  • sloc: python: 16,412; makefile: 24
file content (32 lines) | stat: -rw-r--r-- 901 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from tests.diff import diff
from unittest import TestCase


class DiffTest(TestCase):
    def test__assert_no_diff(self):
        for obj in [
                1,
                'string',
                {'complex': {'object': {'with': ['lists']}}},
        ]:
            self.assertEqual(diff(obj, obj), [])

    def test__diff_values(self):
        self._assert_entire_diff(1, 2)
        self._assert_entire_diff('a', 'b')

    def test__diff_sequences(self):
        self._assert_entire_diff([], [1, 2, 3])

    def test__composite_diff(self):
        a = {'a': {'b': [1, 2, 3]}}
        b = {'a': {'b': [1, 6, 3]}}
        [(path, x, y)] = diff(a, b)
        self.assertEqual(path, ['a', 'b', 1])
        self.assertEqual(x, 2)
        self.assertEqual(y, 6)

    def _assert_entire_diff(self, a, b):
        [(_, x, y)] = diff(a, b)
        self.assertEqual(x, a)
        self.assertEqual(y, b)