|
|
|
@ -4,8 +4,9 @@ |
|
|
|
|
|
|
|
from unittest import TestCase |
|
|
|
|
|
|
|
from octodns.record.chunked import _ChunkedValue |
|
|
|
from octodns.record.chunked import _ChunkedValue, _ChunkedValuesMixin |
|
|
|
from octodns.record.spf import SpfRecord |
|
|
|
from octodns.record.txt import TxtValue |
|
|
|
from octodns.zone import Zone |
|
|
|
|
|
|
|
|
|
|
|
@ -67,3 +68,50 @@ class TestChunkedValue(TestCase): |
|
|
|
['non ASCII character in "Déjà vu"'], |
|
|
|
_ChunkedValue.validate('Déjà vu', 'TXT'), |
|
|
|
) |
|
|
|
|
|
|
|
zone = Zone('unit.tests.', []) |
|
|
|
|
|
|
|
# some hacks to let us work with smaller sizes |
|
|
|
class Base: |
|
|
|
def __init__(self, *args, **kwargs): |
|
|
|
pass |
|
|
|
|
|
|
|
class SmallerChunkedMixin(_ChunkedValuesMixin, Base): |
|
|
|
CHUNK_SIZE = 8 |
|
|
|
_type = 'TXT' |
|
|
|
_value_type = TxtValue |
|
|
|
|
|
|
|
def __init__(self, values): |
|
|
|
super().__init__(None, None, {'values': values}) |
|
|
|
|
|
|
|
def test_splitting(self): |
|
|
|
|
|
|
|
for value, expected in ( |
|
|
|
# shorter |
|
|
|
('0123', '"0123"'), |
|
|
|
# exact |
|
|
|
('01234567', '"01234567"'), |
|
|
|
# simple |
|
|
|
('0123456789', '"01234567" "89"'), |
|
|
|
# 1 extra |
|
|
|
('012345678', '"01234567" "8"'), |
|
|
|
# escape in the middle |
|
|
|
('01234\\;56789', '"01234\\;5" "6789"'), |
|
|
|
# escape before the boundary |
|
|
|
('012345\\;6789', '"012345\\;" "6789"'), |
|
|
|
# escape after the boundary |
|
|
|
('01234567\\;89', '"01234567" "\\;89"'), |
|
|
|
# escape spanning the boundary |
|
|
|
('0123456\\;789', '"0123456" "\\;789"'), |
|
|
|
# multiple escapes at the boundary |
|
|
|
('012345\\\\;6789', '"012345" "\\\\;6789"'), |
|
|
|
# exact size escape |
|
|
|
('012345\\;', '"012345\\;"'), |
|
|
|
# spanning ending |
|
|
|
('0123456\\;', '"0123456" "\\;"'), |
|
|
|
): |
|
|
|
sc = self.SmallerChunkedMixin(value) |
|
|
|
self.assertEqual([expected], sc.chunked_values) |
|
|
|
|
|
|
|
sc = self.SmallerChunkedMixin(['0123456789']) |
|
|
|
self.assertEqual(['"01234567" "89"'], sc.chunked_values) |