Example #1
0
	def test_chop(self):
		delta = Delta().retain(10).retain(10).retain(10).delete(5).delete(5).delete(5)
		self.assertEqual(delta.get_ops(), [{'retain': 30}, {'delete': 15}])

		delta = Delta().delete(5).delete(5).delete(5).retain(10).retain(10).retain(10)
		delta.chop()
		self.assertEqual(delta.get_ops(), [{'delete': 15}])
Example #2
0
	def test_reorder_and_combine(self):
		delta = Delta().insert('hello').delete(3).insert(' world')
		self.assertEqual(delta.get_ops(), [{'insert': 'hello world'}, {'delete': 3}])

		delta = Delta().insert('hello').delete(3).insert(' world', {'bold': True})
		self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'insert': ' world', 'attributes': {'bold': True}}, {'delete': 3}])

		delta = Delta().delete(3).delete(3).insert('hello').delete(3)
		self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'delete': 9}])
Example #3
0
	def test_reorder(self):
		delta = Delta().insert('hello').delete(3)
		self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'delete': 3}])

		delta = Delta().delete(3).insert('hello')
		self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'delete': 3}])

		delta = Delta().delete(3).delete(3).insert('hello')
		self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'delete': 6}])
Example #4
0
    def test_chop(self):
        delta = Delta().retain(10).retain(10).retain(10).delete(5).delete(
            5).delete(5)
        self.assertEqual(delta.get_ops(), [{'retain': 30}, {'delete': 15}])

        delta = Delta().delete(5).delete(5).delete(5).retain(10).retain(
            10).retain(10)
        delta.chop()
        self.assertEqual(delta.get_ops(), [{'delete': 15}])
Example #5
0
    def test_reorder(self):
        delta = Delta().insert('hello').delete(3)
        self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'delete': 3}])

        delta = Delta().delete(3).insert('hello')
        self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'delete': 3}])

        delta = Delta().delete(3).delete(3).insert('hello')
        self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'delete': 6}])
Example #6
0
    def test_cant_combine(self):
        # differing attributes
        delta = Delta().insert('hello ').insert('world', {'bold': True})
        self.assertEqual(delta.get_ops(), [{
            'insert': 'hello '
        }, {
            'insert': 'world',
            'attributes': {
                'bold': True
            }
        }])

        delta = Delta().insert('world', {'bold': True}).insert('hello ')
        self.assertEqual(delta.get_ops(), [{
            'insert': 'world',
            'attributes': {
                'bold': True
            }
        }, {
            'insert': 'hello '
        }])

        delta = Delta().retain(10).retain(5, {'bold': True})
        self.assertEqual(delta.get_ops(), [{
            'retain': 10
        }, {
            'retain': 5,
            'attributes': {
                'bold': True
            }
        }])

        delta = Delta().retain(5, {'bold': True}).retain(10)
        self.assertEqual(delta.get_ops(), [{
            'retain': 5,
            'attributes': {
                'bold': True
            }
        }, {
            'retain': 10
        }])

        # insert text + insert embed
        delta = Delta().insert('hello').insert(
            {'image': 'https://octodex.github.com/images/labtocat.png'},
            {'alt': 'Lab Octocat'})
        self.assertEqual(delta.get_ops(), [{
            'insert': 'hello'
        }, {
            'insert': {
                'image': 'https://octodex.github.com/images/labtocat.png'
            },
            'attributes': {
                'alt': 'Lab Octocat'
            }
        }])
Example #7
0
	def test_simple_combines(self):
		delta = Delta().insert('hello ').insert('world')
		self.assertEqual(delta.get_ops(), [{'insert': 'hello world'}])

		delta = Delta().delete(10).delete(5)
		self.assertEqual(delta.get_ops(), [{'delete': 15}])

		delta = Delta().retain(10).retain(5)
		self.assertEqual(delta.get_ops(), [{'retain': 15}])

		delta = Delta().retain(10).retain(10).retain(10).delete(5).delete(5).delete(5)
		self.assertEqual(delta.get_ops(), [{'retain': 30}, {'delete': 15}])
Example #8
0
    def test_simple_combines(self):
        delta = Delta().insert('hello ').insert('world')
        self.assertEqual(delta.get_ops(), [{'insert': 'hello world'}])

        delta = Delta().delete(10).delete(5)
        self.assertEqual(delta.get_ops(), [{'delete': 15}])

        delta = Delta().retain(10).retain(5)
        self.assertEqual(delta.get_ops(), [{'retain': 15}])

        delta = Delta().retain(10).retain(10).retain(10).delete(5).delete(
            5).delete(5)
        self.assertEqual(delta.get_ops(), [{'retain': 30}, {'delete': 15}])
Example #9
0
	def test_cant_combine(self):
		# differing attributes
		delta = Delta().insert('hello ').insert('world', {'bold': True})
		self.assertEqual(delta.get_ops(), [{'insert': 'hello '}, {'insert': 'world', 'attributes': {'bold': True}}])

		delta = Delta().insert('world', {'bold': True}).insert('hello ')
		self.assertEqual(delta.get_ops(), [{'insert': 'world', 'attributes': {'bold': True}}, {'insert': 'hello '}])

		delta = Delta().retain(10).retain(5, {'bold': True})
		self.assertEqual(delta.get_ops(), [{'retain': 10}, {'retain': 5, 'attributes': {'bold': True}}])

		delta = Delta().retain(5, {'bold': True}).retain(10)
		self.assertEqual(delta.get_ops(), [{'retain': 5, 'attributes': {'bold': True}}, {'retain': 10}])

		# insert text + insert embed
		delta = Delta().insert('hello').insert({'image': 'https://octodex.github.com/images/labtocat.png'}, {'alt': 'Lab Octocat'})
		self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'insert': {'image': 'https://octodex.github.com/images/labtocat.png'}, 'attributes': {'alt': 'Lab Octocat'}}])
Example #10
0
	def test_insert(self):
		delta = Delta()
		delta.insert('')
		self.assertEqual(delta.get_ops(), [])

		delta = Delta()
		delta.insert(' ')
		self.assertEqual(delta.get_ops(), [{'insert': ' '}])

		delta = Delta()
		delta.insert('hello')
		self.assertEqual(delta.get_ops(), [{'insert': 'hello'}])

		delta = Delta()
		delta.insert('hello', {})
		self.assertEqual(delta.get_ops(), [{'insert': 'hello'}])

		delta = Delta()
		delta.insert('hello', {'bold': True})
		self.assertEqual(delta.get_ops(), [{'insert': 'hello', 'attributes': {'bold': True}}])

		# old Quill format for embeds
		delta = Delta()
		delta.insert(1, {'image': 'https://octodex.github.com/images/labtocat.png'})
		self.assertEqual(delta.get_ops(), [{'insert': 1, 'attributes': {'image': 'https://octodex.github.com/images/labtocat.png'}}])

		# new Quill format for embeds
		delta = Delta()
		delta.insert({'image': 'https://octodex.github.com/images/labtocat.png'}, {'alt': 'Lab Octocat'})
		self.assertEqual(delta.get_ops(), [{'insert': {'image': 'https://octodex.github.com/images/labtocat.png'}, 'attributes': {'alt': 'Lab Octocat'}}])
Example #11
0
    def test_delete(self):
        delta = Delta()
        delta.delete(0)
        self.assertEqual(delta.get_ops(), [])

        delta = Delta()
        delta.delete(-10)
        self.assertEqual(delta.get_ops(), [])

        delta = Delta()
        delta.delete('whoops')
        self.assertEqual(delta.get_ops(), [])

        delta = Delta()
        delta.delete(15)
        self.assertEqual(delta.get_ops(), [{'delete': 15}])

        delta = Delta()
        delta.delete(15L)
        self.assertEqual(delta.get_ops(), [{'delete': 15}])
Example #12
0
	def test_delete(self):
		delta = Delta()
		delta.delete(0)
		self.assertEqual(delta.get_ops(), [])

		delta = Delta()
		delta.delete(-10)
		self.assertEqual(delta.get_ops(), [])

		delta = Delta()
		delta.delete('whoops')
		self.assertEqual(delta.get_ops(), [])

		delta = Delta()
		delta.delete(15)
		self.assertEqual(delta.get_ops(), [{'delete': 15}])

		delta = Delta()
		delta.delete(15L)
		self.assertEqual(delta.get_ops(), [{'delete': 15}])
Example #13
0
    def test_retain(self):
        delta = Delta()
        delta.retain(0)
        self.assertEqual(delta.get_ops(), [])

        delta = Delta()
        delta.retain(-10)
        self.assertEqual(delta.get_ops(), [])

        delta = Delta()
        delta.retain('whoops')
        self.assertEqual(delta.get_ops(), [])

        delta = Delta()
        delta.retain(15)
        self.assertEqual(delta.get_ops(), [{'retain': 15}])

        delta = Delta()
        delta.retain(15, {})
        self.assertEqual(delta.get_ops(), [{'retain': 15}])

        delta = Delta()
        delta.retain(15, {'bold': True})
        self.assertEqual(delta.get_ops(), [{
            'retain': 15,
            'attributes': {
                'bold': True
            }
        }])
Example #14
0
    def test_reorder_and_combine(self):
        delta = Delta().insert('hello').delete(3).insert(' world')
        self.assertEqual(delta.get_ops(), [{
            'insert': 'hello world'
        }, {
            'delete': 3
        }])

        delta = Delta().insert('hello').delete(3).insert(
            ' world', {'bold': True})
        self.assertEqual(delta.get_ops(), [{
            'insert': 'hello'
        }, {
            'insert': ' world',
            'attributes': {
                'bold': True
            }
        }, {
            'delete': 3
        }])

        delta = Delta().delete(3).delete(3).insert('hello').delete(3)
        self.assertEqual(delta.get_ops(), [{'insert': 'hello'}, {'delete': 9}])
Example #15
0
    def test_insert(self):
        delta = Delta()
        delta.insert('')
        self.assertEqual(delta.get_ops(), [])

        delta = Delta()
        delta.insert(' ')
        self.assertEqual(delta.get_ops(), [{'insert': ' '}])

        delta = Delta()
        delta.insert('hello')
        self.assertEqual(delta.get_ops(), [{'insert': 'hello'}])

        delta = Delta()
        delta.insert('hello', {})
        self.assertEqual(delta.get_ops(), [{'insert': 'hello'}])

        delta = Delta()
        delta.insert('hello', {'bold': True})
        self.assertEqual(delta.get_ops(), [{
            'insert': 'hello',
            'attributes': {
                'bold': True
            }
        }])

        # old Quill format for embeds
        delta = Delta()
        delta.insert(
            1, {'image': 'https://octodex.github.com/images/labtocat.png'})
        self.assertEqual(delta.get_ops(), [{
            'insert': 1,
            'attributes': {
                'image': 'https://octodex.github.com/images/labtocat.png'
            }
        }])

        # new Quill format for embeds
        delta = Delta()
        delta.insert(
            {'image': 'https://octodex.github.com/images/labtocat.png'},
            {'alt': 'Lab Octocat'})
        self.assertEqual(delta.get_ops(), [{
            'insert': {
                'image': 'https://octodex.github.com/images/labtocat.png'
            },
            'attributes': {
                'alt': 'Lab Octocat'
            }
        }])
Example #16
0
	def test_iterator(self):
		delta = Delta().retain(20).insert('hello').delete(15).retain(3).insert({'image': 'https://octodex.github.com/images/labtocat.png'})

		iterator = OpIterator(delta.get_ops())

		self.assertEqual(iterator.peek_length(), 20)
		self.assertEqual(iterator.peek_type(), 'retain')
		self.assertEqual(iterator.next(), {'retain': 20})
		self.assertEqual(iterator.next(3), {'insert': 'hel'})
		self.assertEqual(iterator.peek_length(), 2)
		self.assertEqual(iterator.next(), {'insert': 'lo'})
		self.assertEqual(iterator.next(), {'delete': 15})
		self.assertEqual(iterator.has_next(), True)
		self.assertEqual(iterator.next(4), {'retain': 3})
		self.assertEqual(iterator.peek_length(), 1)
		self.assertEqual(iterator.next(5), {'insert': {'image': 'https://octodex.github.com/images/labtocat.png'}})
Example #17
0
    def test_iterator(self):
        delta = Delta().retain(20).insert('hello').delete(15).retain(3).insert(
            {'image': 'https://octodex.github.com/images/labtocat.png'})

        iterator = OpIterator(delta.get_ops())

        self.assertEqual(iterator.peek_length(), 20)
        self.assertEqual(iterator.peek_type(), 'retain')
        self.assertEqual(iterator.next(), {'retain': 20})
        self.assertEqual(iterator.next(3), {'insert': 'hel'})
        self.assertEqual(iterator.peek_length(), 2)
        self.assertEqual(iterator.next(), {'insert': 'lo'})
        self.assertEqual(iterator.next(), {'delete': 15})
        self.assertEqual(iterator.has_next(), True)
        self.assertEqual(iterator.next(4), {'retain': 3})
        self.assertEqual(iterator.peek_length(), 1)
        self.assertEqual(iterator.next(5), {
            'insert': {
                'image': 'https://octodex.github.com/images/labtocat.png'
            }
        })
Example #18
0
    def test_constructor(self):
        delta = Delta()
        self.assertEqual(delta.get_ops(), [])

        delta = Delta([])
        self.assertEqual(delta.get_ops(), [])

        delta = Delta([{'delete': 3}])
        self.assertEqual(delta.get_ops(), [{'delete': 3}])

        existing_delta = Delta([{'delete': 3}])
        delta = Delta(existing_delta)
        self.assertEqual(delta.get_ops(), [{'delete': 3}])

        delta = Delta({'ops': [{'delete': 3}]})
        self.assertEqual(delta.get_ops(), [{'delete': 3}])

        delta = Delta('whoops')
        self.assertEqual(delta.get_ops(), [])
Example #19
0
	def test_constructor(self):
		delta = Delta()
		self.assertEqual(delta.get_ops(), [])

		delta = Delta([])
		self.assertEqual(delta.get_ops(), [])

		delta = Delta([{'delete': 3}])
		self.assertEqual(delta.get_ops(), [{'delete': 3}])

		existing_delta = Delta([{'delete': 3}])
		delta = Delta(existing_delta)
		self.assertEqual(delta.get_ops(), [{'delete': 3}])

		delta = Delta({'ops': [{'delete': 3}]})
		self.assertEqual(delta.get_ops(), [{'delete': 3}])

		delta = Delta('whoops')
		self.assertEqual(delta.get_ops(), [])
Example #20
0
	def test_retain(self):
		delta = Delta()
		delta.retain(0)
		self.assertEqual(delta.get_ops(), [])

		delta = Delta()
		delta.retain(-10)
		self.assertEqual(delta.get_ops(), [])

		delta = Delta()
		delta.retain('whoops')
		self.assertEqual(delta.get_ops(), [])

		delta = Delta()
		delta.retain(15)
		self.assertEqual(delta.get_ops(), [{'retain': 15}])

		delta = Delta()
		delta.retain(15, {})
		self.assertEqual(delta.get_ops(), [{'retain': 15}])

		delta = Delta()
		delta.retain(15, {'bold': True})
		self.assertEqual(delta.get_ops(), [{'retain': 15, 'attributes': {'bold': True}}])