@@ -74,6 +74,30 @@ def simple_record_set(private_hosted_zone):
74
74
75
75
delete_route53_resource (ref )
76
76
77
+ @pytest .fixture (scope = "function" )
78
+ def fqdn_record_set (private_hosted_zone ):
79
+ zone_id , domain = private_hosted_zone
80
+ parsed_zone_id = zone_id .split ("/" )[- 1 ]
81
+ ip_address = socket .inet_ntoa (struct .pack ('>I' , random .randint (1 , 0xffffffff )))
82
+ simple_record_name = random_suffix_name ("simple-record-name" , 32 )
83
+
84
+ replacements = REPLACEMENT_VALUES .copy ()
85
+ replacements ["FQDN_RECORD_NAME" ] = simple_record_name
86
+ replacements ["FQDN_RECORD_NAME_SPEC" ] = simple_record_name + "hello-world.example.com."
87
+ replacements ["HOSTED_ZONE_ID" ] = parsed_zone_id
88
+ replacements ["IP_ADDR" ] = ip_address
89
+
90
+ ref , cr = create_route53_resource (
91
+ "recordsets" ,
92
+ simple_record_name ,
93
+ "record_set_fqdn" ,
94
+ replacements
95
+ )
96
+
97
+ yield ref , cr
98
+
99
+ delete_route53_resource (ref )
100
+
77
101
def status_id_exists (ref ):
78
102
for _ in range (STATUS_UPDATE_RETRY_COUNT ):
79
103
record = get_route53_resource (ref )
@@ -131,3 +155,21 @@ def test_crud_simple_record(self, route53_client, private_hosted_zone, simple_re
131
155
132
156
# Check record set has been updated in AWS
133
157
route53_validator .assert_record_set (updated , domain )
158
+
159
+
160
+ def test_cd_fqdn_record (self , route53_client , private_hosted_zone , fqdn_record_set ):
161
+ zone_id , domain = private_hosted_zone
162
+ assert zone_id
163
+
164
+ # Check hosted zone exists in AWS
165
+ route53_validator = Route53Validator (route53_client )
166
+ route53_validator .assert_hosted_zone (zone_id )
167
+
168
+ ref , cr = fqdn_record_set
169
+ assert status_id_exists (ref ) is True
170
+
171
+ # Check record set exists in AWS
172
+ route53_validator .assert_record_set (cr , domain )
173
+
174
+ # Ensure that the status eventually switches from PENDING to INSYNC
175
+ assert verify_status_insync (ref ) is True
0 commit comments