@ -1490,3 +1490,59 @@ class TestRecordValidation(TestCase):
' value ' : ' this has some; semi-colons \ ; in it ' ,
' value ' : ' this has some; semi-colons \ ; in it ' ,
} )
} )
self . assertEquals ( [ ' unescaped ; ' ] , ctx . exception . reasons )
self . assertEquals ( [ ' unescaped ; ' ] , ctx . exception . reasons )
def test_TXT_long_value_chunking ( self ) :
expected = ' " Lorem ipsum dolor sit amet, consectetur adipiscing ' \
' elit, seddo eiusmod tempor incididunt ut labore et dolore ' \
' magna aliqua. Ut enim ad minim veniam, quis nostrud ' \
' exercitation ullamco laboris nisi ut aliquip ex ea commodo ' \
' consequat. Duis aute irure dolor in " " reprehenderit in ' \
' voluptate velit esse cillum dolore eu fugiat nulla pariatur. ' \
' Excepteur sint occaecat cupidatat non proident, sunt in culpa ' \
' qui officia deserunt mollit anim id est laborum. " '
# Single string
single = Record . new ( self . zone , ' ' , {
' type ' : ' TXT ' ,
' ttl ' : 600 ,
' values ' : [
' hello world ' ,
' Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed '
' do eiusmod tempor incididunt ut labore et dolore magna '
' aliqua. Ut enim ad minim veniam, quis nostrud exercitation '
' ullamco laboris nisi ut aliquip ex ea commodo consequat. '
' Duis aute irure dolor in reprehenderit in voluptate velit '
' esse cillum dolore eu fugiat nulla pariatur. Excepteur sint '
' occaecat cupidatat non proident, sunt in culpa qui officia '
' deserunt mollit anim id est laborum. ' ,
' this has some \ ; semi-colons \ ; in it ' ,
]
} )
self . assertEquals ( 3 , len ( single . values ) )
self . assertEquals ( 3 , len ( single . chunked_values ) )
# Note we are checking that this normalizes the chunking, not that we
# get out what we put in.
self . assertEquals ( expected , single . chunked_values [ 0 ] )
# Chunked
chunked = Record . new ( self . zone , ' ' , {
' type ' : ' TXT ' ,
' ttl ' : 600 ,
' values ' : [
' " hello world " ' ,
' " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed '
' do eiusmod tempor incididunt ut labore et dolore magna '
' aliqua. Ut enim ad minim veniam, quis nostrud exercitation '
' ullamco laboris nisi ut aliquip ex " " ea commodo consequat. '
' Duis aute irure dolor in reprehenderit in voluptate velit '
' esse cillum dolore eu fugiat nulla pariatur. Excepteur sint '
' occaecat cupidatat non proident, sunt in culpa qui officia '
' deserunt mollit anim id est laborum. " ' ,
' " this has some \ ; semi-colons \ ; in it " ' ,
]
} )
self . assertEquals ( expected , chunked . chunked_values [ 0 ] )
# should be single values, no quoting
self . assertEquals ( single . values , chunked . values )
# should be chunked values, with quoting
self . assertEquals ( single . chunked_values , chunked . chunked_values )