]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Filter possible timestamps in rrsets.
authorMiod Vallat <miod.vallat@powerdns.com>
Fri, 18 Jul 2025 08:17:35 +0000 (10:17 +0200)
committerMiod Vallat <miod.vallat@powerdns.com>
Wed, 6 Aug 2025 04:55:29 +0000 (06:55 +0200)
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
(cherry picked from commit 7dd4dfe80b08781d702e48071c40cad94180f773)

regression-tests.api/test_Zones.py

index 24a8b433b8db7d6b63bdb43b3b79ee3b9a321225..234955916766507b9f4ae585e598f4e4f4a6be08 100644 (file)
@@ -10,9 +10,15 @@ from pprint import pprint
 from test_helper import ApiTestCase, unique_zone_name, is_auth, is_auth_lmdb, is_recursor, get_db_records, pdnsutil_rectify, sdig
 
 
+def remove_timestamp(json):
+    for item in json:
+        if 'modified_at' in item:
+            del item['modified_at']
+
 def get_rrset(data, qname, qtype):
     for rrset in data['rrsets']:
         if rrset['name'] == qname and rrset['type'] == qtype:
+            remove_timestamp(rrset['records'])
             return rrset
     return None
 
@@ -884,7 +890,10 @@ class AuthZones(ApiTestCase, AuthZonesHelperMixin):
         data = self.get_zone(example_com['id'], rrset_name="host-18000.example.com.")
         for k in ('id', 'url', 'name', 'masters', 'kind', 'last_check', 'notified_serial', 'serial', 'rrsets'):
             self.assertIn(k, data)
-        self.assertEqual(data['rrsets'],
+        received_rrsets = data['rrsets']
+        for rrset in received_rrsets:
+            remove_timestamp(rrset['records'])
+        self.assertEqual(received_rrsets,
             [
                 {
                     'comments': [],
@@ -907,7 +916,10 @@ class AuthZones(ApiTestCase, AuthZonesHelperMixin):
         data = self.get_zone(powerdnssec_org['id'], rrset_name="localhost.powerdnssec.org.")
         for k in ('id', 'url', 'name', 'masters', 'kind', 'last_check', 'notified_serial', 'serial', 'rrsets'):
             self.assertIn(k, data)
-        self.assertEqual(sorted(data['rrsets'], key=operator.itemgetter('type')),
+        received_rrsets = data['rrsets']
+        for rrset in received_rrsets:
+            remove_timestamp(rrset['records'])
+        self.assertEqual(sorted(received_rrsets, key=operator.itemgetter('type')),
             [
                 {
                     'comments': [],
@@ -942,7 +954,10 @@ class AuthZones(ApiTestCase, AuthZonesHelperMixin):
         data = self.get_zone(powerdnssec_org['id'], rrset_name="localhost.powerdnssec.org.", rrset_type="AAAA")
         for k in ('id', 'url', 'name', 'masters', 'kind', 'last_check', 'notified_serial', 'serial', 'rrsets'):
             self.assertIn(k, data)
-        self.assertEqual(data['rrsets'],
+        received_rrsets = data['rrsets']
+        for rrset in received_rrsets:
+            remove_timestamp(rrset['records'])
+        self.assertEqual(received_rrsets,
             [
                 {
                     'comments': [],
@@ -2088,8 +2103,10 @@ $NAME$  1D  IN  SOA ns1.example.org. hostmaster.example.org. (
         self.create_zone(name=name, serial=22, soa_edit_api='')
         r = self.session.get(self.url("/api/v1/servers/localhost/search-data?q=" + name.rstrip('.')))
         self.assert_success_json(r)
-        print(r.json())
-        self.assertCountEqual(r.json(), [
+        json = r.json()
+        print(json)
+        remove_timestamp(json)
+        self.assertCountEqual(json, [
             {u'object_type': u'zone', u'name': name, u'zone_id': name},
             {u'content': u'ns1.example.com.',
              u'zone_id': name, u'zone': name, u'object_type': u'record', u'disabled': False,
@@ -2121,8 +2138,10 @@ $NAME$  1D  IN  SOA ns1.example.org. hostmaster.example.org. (
         self.create_zone(name=name, serial=22, soa_edit_api='')
         r = self.session.get(self.url("/api/v1/servers/localhost/search-data?q=" + name.rstrip('.') + "&object_type=" + data_type))
         self.assert_success_json(r)
-        print(r.json())
-        self.assertCountEqual(r.json(), [
+        json = r.json()
+        print(json)
+        remove_timestamp(json)
+        self.assertCountEqual(json, [
             {u'content': u'ns1.example.com.',
              u'zone_id': name, u'zone': name, u'object_type': u'record', u'disabled': False,
              u'ttl': 3600, u'type': u'NS', u'name': name},
@@ -2413,7 +2432,10 @@ $NAME$  1D  IN  SOA ns1.example.org. hostmaster.example.org. (
             rrset.setdefault('comments', [])
             for record in rrset['records']:
                 record.setdefault('disabled', False)
-        assert_eq_rrsets(data['rrsets'], rrsets)
+        received_rrsets = data['rrsets']
+        for rrset in received_rrsets:
+            remove_timestamp(rrset['records'])
+        assert_eq_rrsets(received_rrsets, rrsets)
 
     def test_zone_replace_rrsets_dnssec(self):
         """With dnssec: check automatic rectify is done"""