def test_delta_as_data(self):
        delta = Delta(ops=[
            Insert('abc', None),
            Retain(1, {'color': 'red'}),
            Delete(4),
            Insert('def', {'bold': True}),
            Retain(6, None)
        ])

        expected = [{
            'insert': 'abc'
        }, {
            'retain': 1,
            'attributes': {
                'color': 'red'
            }
        }, {
            'delete': 4
        }, {
            'insert': 'def',
            'attributes': {
                'bold': True
            }
        }, {
            'retain': 6
        }]

        self.assertListEqual(delta.as_data(), expected)
Beispiel #2
0
    def test_insert_in_middle_of_text(self):
        a = Delta().insert('Hello')
        b = Delta().retain(3).insert('X')

        assert a.ops == [Insert('Hello', None)]
        assert b.ops == [Retain(3, None), Insert('X', None)]

        expected = Delta().insert('HelXlo')
        compose = a.compose(b)

        assert compose.ops == expected.ops, f'{expected} not {compose}'
Beispiel #3
0
    def test_expected(self):
        delta = (Delta().insert('Hello\n\n').insert('World', {
            'bold': True
        }).insert({
            'image': 'octocat.png'
        }).insert('\n', {
            'align': 'right'
        }).insert('!'))

        predicate = mock.Mock()
        delta.each_line(predicate)

        assert predicate.call_count == 4
        call_args = predicate.call_args_list

        assert call_args[0] == (Delta().insert('Hello'), {}, 0)
Beispiel #4
0
    def test_empty_delta(self):
        delta = Delta().insert('Test')
        concat = Delta()
        expected = Delta().insert('Test')
        assert delta.concat(concat).ops == expected.ops

        assert concat.concat(delta).ops == expected.ops
    def test_delta_as_string(self):
        delta = Delta(ops=[
            Insert('abc', None),
            Retain(1, {'color': 'red'}),
            Delete(3),
        ])

        assert str(delta) == ('[{"insert": "abc"}, '
                              '{"retain": 1, "attributes": {"color": "red"}}, '
                              '{"delete": 3}]')
Beispiel #6
0
    def test_unmergeable(self):
        delta = Delta().insert('Test')
        original = Delta().insert('Test')
        concat = Delta().insert('!', {'bold': True})
        expected = Delta().insert('Test').insert('!', {'bold': True})

        assert delta.concat(concat).ops == expected.ops
        assert delta.ops == original.ops
Beispiel #7
0
    def test_mergeable(self):
        delta = Delta().insert('Test', {'bold': True})
        original = Delta().insert('Test', {'bold': True})

        concat = Delta().insert('!', {'bold': True}).insert('\n')
        expected = Delta().insert('Test!', {'bold': True}).insert('\n')

        assert delta.concat(concat) == expected
        assert delta.ops == original.ops
Beispiel #8
0
 def test_retain_delete(self):
     a = Delta().retain(1, {'bold': True})
     b = Delta().delete(1)
     expected = Delta().delete(1)
     delta = a.compose(b)
     assert delta == expected, [delta.ops, expected.ops]
Beispiel #9
0
 def test_retain_retain(self):
     a = Delta().retain(1, {'bold': True})
     b = Delta().retain(1, {'color': 'blue'})
     expected = Delta().retain(1, {'bold': True, 'color': 'blue'})
     delta = a.compose(b)
     assert delta == expected, [delta.ops, expected.ops]
Beispiel #10
0
 def test_retain_insert(self):
     a = Delta().retain(1, {'bold': True})
     b = Delta().insert('B')
     expected = Delta().insert('B').retain(1, {'bold': True})
     delta = a.compose(b)
     assert delta == expected, [delta.ops, expected.ops]
Beispiel #11
0
 def test_insert_insert(self):
     a = Delta().insert('A')
     b = Delta().insert('B')
     expected = Delta().insert('B').insert('A')
     delta = a.compose(b)
     assert delta == expected, [delta.ops, expected.ops]
Beispiel #12
0
 def test_delete_delete(self):
     a = Delta().delete(1)
     b = Delta().delete(1)
     expected = Delta().delete(2)
     delta = a.compose(b)
     assert delta == expected, [delta.ops, expected.ops]
Beispiel #13
0
 def setUpClass(cls):
     cls.delta = (Delta().insert('Hello').insert({
         'image': True
     }).insert('World !'))
Beispiel #14
0
    def test_chop_formatted_retain(self):
        delta = Delta().insert('Test').retain(4, {'bold': True})
        expected = Delta().insert('Test').retain(4, {'bold': True})

        assert delta.chop().ops == expected.ops
Beispiel #15
0
    def test_chop_insert(self):
        delta = Delta().insert('Test')
        expected = Delta().insert('Test')

        assert delta.chop().ops == expected.ops
Beispiel #16
0
    def test_chop_retain(self):
        delta = Delta().insert('Test').retain(4)
        expected = Delta().insert('Test')

        assert delta.chop().ops == expected.ops