@ -27,7 +27,8 @@ class TestAutoArpa(TestCase):
aa = AutoArpa ( ' auto-arpa ' )
aa . process_source_zone ( zone , [ ] )
self . assertEqual (
{ ' 4.3.2.1.in-addr.arpa. ' : [ ( 999 , ' a.unit.tests. ' ) ] } , aa . _records
{ ' 4.3.2.1.in-addr.arpa. ' : [ ( 999 , 3600 , ' a.unit.tests. ' ) ] } ,
aa . _records ,
)
# matching zone
@ -56,8 +57,8 @@ class TestAutoArpa(TestCase):
aa . process_source_zone ( zone , [ ] )
self . assertEqual (
{
' 4.3.2.1.in-addr.arpa. ' : [ ( 999 , ' a.unit.tests. ' ) ] ,
' 5.3.2.1.in-addr.arpa. ' : [ ( 999 , ' a.unit.tests. ' ) ] ,
' 4.3.2.1.in-addr.arpa. ' : [ ( 999 , 1600 , ' a.unit.tests. ' ) ] ,
' 5.3.2.1.in-addr.arpa. ' : [ ( 999 , 1600 , ' a.unit.tests. ' ) ] ,
} ,
aa . _records ,
)
@ -81,7 +82,9 @@ class TestAutoArpa(TestCase):
aa = AutoArpa ( ' auto-arpa ' )
aa . process_source_zone ( zone , [ ] )
ip6_arpa = ' 2.0.0.0.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.c.0.0.0.f.f.0.0.ip6.arpa. '
self . assertEqual ( { ip6_arpa : [ ( 999 , ' aaaa.unit.tests. ' ) ] } , aa . _records )
self . assertEqual (
{ ip6_arpa : [ ( 999 , 3600 , ' aaaa.unit.tests. ' ) ] } , aa . _records
)
# matching zone
arpa = Zone ( ' c.0.0.0.f.f.0.0.ip6.arpa. ' , [ ] )
@ -117,13 +120,13 @@ class TestAutoArpa(TestCase):
aa . process_source_zone ( zone , [ ] )
self . assertEqual (
{
' 4.3.2.1.in-addr.arpa. ' : [ ( 999 , ' geo.unit.tests. ' ) ] ,
' 5.3.2.1.in-addr.arpa. ' : [ ( 999 , ' geo.unit.tests. ' ) ] ,
' 1.1.1.1.in-addr.arpa. ' : [ ( 999 , ' geo.unit.tests. ' ) ] ,
' 2.2.2.2.in-addr.arpa. ' : [ ( 999 , ' geo.unit.tests. ' ) ] ,
' 3.3.3.3.in-addr.arpa. ' : [ ( 999 , ' geo.unit.tests. ' ) ] ,
' 4.4.4.4.in-addr.arpa. ' : [ ( 999 , ' geo.unit.tests. ' ) ] ,
' 5.5.5.5.in-addr.arpa. ' : [ ( 999 , ' geo.unit.tests. ' ) ] ,
' 4.3.2.1.in-addr.arpa. ' : [ ( 999 , 3600 , ' geo.unit.tests. ' ) ] ,
' 5.3.2.1.in-addr.arpa. ' : [ ( 999 , 3600 , ' geo.unit.tests. ' ) ] ,
' 1.1.1.1.in-addr.arpa. ' : [ ( 999 , 3600 , ' geo.unit.tests. ' ) ] ,
' 2.2.2.2.in-addr.arpa. ' : [ ( 999 , 3600 , ' geo.unit.tests. ' ) ] ,
' 3.3.3.3.in-addr.arpa. ' : [ ( 999 , 3600 , ' geo.unit.tests. ' ) ] ,
' 4.4.4.4.in-addr.arpa. ' : [ ( 999 , 3600 , ' geo.unit.tests. ' ) ] ,
' 5.5.5.5.in-addr.arpa. ' : [ ( 999 , 3600 , ' geo.unit.tests. ' ) ] ,
} ,
aa . _records ,
)
@ -176,7 +179,7 @@ class TestAutoArpa(TestCase):
unique_values = aa . _order_and_unique_fqdns (
aa . _records [ f ' {zone} ' ] , 999
)
self . assertEqual ( [ ( ' dynamic.unit.tests. ' ) ] , unique_values )
self . assertEqual ( [ ( 3600 , ' dynamic.unit.tests. ' ) ] , unique_values )
def test_multiple_names ( self ) :
zone = Zone ( ' unit.tests. ' , [ ] )
@ -194,8 +197,8 @@ class TestAutoArpa(TestCase):
self . assertEqual (
{
' 4.3.2.1.in-addr.arpa. ' : [
( 999 , ' a1.unit.tests. ' ) ,
( 999 , ' a2.unit.tests. ' ) ,
( 999 , 3600 , ' a1.unit.tests. ' ) ,
( 999 , 3600 , ' a2.unit.tests. ' ) ,
]
} ,
{ ' 4.3.2.1.in-addr.arpa. ' : sorted_records } ,
@ -219,7 +222,8 @@ class TestAutoArpa(TestCase):
aa = AutoArpa ( ' auto-arpa ' )
aa . process_source_zone ( zone , [ ] )
self . assertEqual (
{ ' 4.3.20.10.in-addr.arpa. ' : [ ( 999 , ' a.unit.tests. ' ) ] } , aa . _records
{ ' 4.3.20.10.in-addr.arpa. ' : [ ( 999 , 3600 , ' a.unit.tests. ' ) ] } ,
aa . _records ,
)
# matching zone
@ -259,7 +263,11 @@ class TestAutoArpa(TestCase):
aa = AutoArpa ( ' auto-arpa ' )
aa . process_source_zone ( zone , [ ] )
self . assertEqual (
{ ' 4.3.2.1.in-addr.arpa. ' : [ ( 999 , ' a with spaces.unit.tests. ' ) ] } ,
{
' 4.3.2.1.in-addr.arpa. ' : [
( 999 , 3600 , ' a with spaces.unit.tests. ' )
]
} ,
aa . _records ,
)
@ -275,43 +283,87 @@ class TestAutoArpa(TestCase):
def test_arpa_priority ( self ) :
aa = AutoArpa ( ' auto-arpa ' )
duplicate_values = [ ( 999 , ' a.unit.tests. ' ) , ( 1 , ' a.unit.tests. ' ) ]
duplicate_values = [
( 999 , 3600 , ' a.unit.tests. ' ) ,
( 1 , 3600 , ' a.unit.tests. ' ) ,
]
self . assertEqual (
[ ' a.unit.tests. ' ] ,
[ ( 3600 , ' a.unit.tests. ' ) ] ,
aa . _order_and_unique_fqdns ( duplicate_values , max_auto_arpa = 999 ) ,
)
duplicate_values = [
( 50 , ' d.unit.tests. ' ) ,
( 999 , ' dup.unit.tests. ' ) ,
( 3 , ' a.unit.tests. ' ) ,
( 1 , ' dup.unit.tests. ' ) ,
( 2 , ' c.unit.tests. ' ) ,
( 50 , 3600 , ' d.unit.tests. ' ) ,
( 999 , 3600 , ' dup.unit.tests. ' ) ,
( 3 , 3600 , ' a.unit.tests. ' ) ,
( 1 , 3600 , ' dup.unit.tests. ' ) ,
( 2 , 3600 , ' c.unit.tests. ' ) ,
]
self . assertEqual (
[
' dup.unit.tests. ' ,
' c.unit.tests. ' ,
' a.unit.tests. ' ,
' d.unit.tests. ' ,
( 3600 , ' dup.unit.tests. ' ) ,
( 3600 , ' c.unit.tests. ' ) ,
( 3600 , ' a.unit.tests. ' ) ,
( 3600 , ' d.unit.tests. ' ) ,
] ,
aa . _order_and_unique_fqdns ( duplicate_values , max_auto_arpa = 999 ) ,
)
duplicate_values_2 = [ ( 999 , ' a.unit.tests. ' ) , ( 999 , ' a.unit.tests. ' ) ]
duplicate_values_2 = [
( 999 , 3600 , ' a.unit.tests. ' ) ,
( 999 , 3600 , ' a.unit.tests. ' ) ,
]
self . assertEqual (
[ ' a.unit.tests. ' ] ,
[ ( 3600 , ' a.unit.tests. ' ) ] ,
aa . _order_and_unique_fqdns ( duplicate_values_2 , max_auto_arpa = 999 ) ,
)
ordered_values = [ ( 999 , ' a.unit.tests. ' ) , ( 1 , ' b.unit.tests. ' ) ]
ordered_values = [
( 999 , 3600 , ' a.unit.tests. ' ) ,
( 1 , 3600 , ' b.unit.tests. ' ) ,
]
self . assertEqual (
[ ' b.unit.tests. ' , ' a.unit.tests. ' ] ,
[ ( 3600 , ' b.unit.tests. ' ) , ( 3600 , ' a.unit.tests. ' ) ] ,
aa . _order_and_unique_fqdns ( ordered_values , max_auto_arpa = 999 ) ,
)
max_one_value = [ ( 999 , ' a.unit.tests. ' ) , ( 1 , ' b.unit.tests. ' ) ]
max_one_value = [
( 999 , 3600 , ' a.unit.tests. ' ) ,
( 1 , 3600 , ' b.unit.tests. ' ) ,
]
self . assertEqual (
[ ' b.unit.tests. ' ] ,
[ ( 3600 , ' b.unit.tests. ' ) ] ,
aa . _order_and_unique_fqdns ( max_one_value , max_auto_arpa = 1 ) ,
)
def test_arpa_inherit_ttl ( self ) :
zone = Zone ( ' unit.tests. ' , [ ] )
record = Record . new (
zone , ' a1 ' , { ' ttl ' : 32 , ' type ' : ' A ' , ' value ' : ' 1.2.3.4 ' }
)
zone . add_record ( record )
record2 = Record . new (
zone ,
' a2 ' ,
{
' ttl ' : 64 ,
' type ' : ' A ' ,
' value ' : ' 1.2.3.4 ' ,
' octodns ' : { ' auto_arpa_priority ' : 1 } ,
} ,
)
zone . add_record ( record2 )
record3 = Record . new (
zone , ' a3 ' , { ' ttl ' : 128 , ' type ' : ' A ' , ' value ' : ' 1.2.3.4 ' }
)
zone . add_record ( record3 )
aa = AutoArpa ( ' auto-arpa ' , 3600 , False , 999 , True )
aa . process_source_zone ( zone , [ ] )
arpa = Zone ( ' 3.2.1.in-addr.arpa. ' , [ ] )
aa . populate ( arpa )
( ptr , ) = arpa . records
self . assertEqual ( 64 , ptr . ttl )