class ListRecordSetsTestContext(object): def __init__(self): self.client = VinylDNSClient(VinylDNSTestContext.vinyldns_url, 'listRecordsAccessKey', 'listRecordsSecretKey') self.zone = None self.all_records = [] self.group = None get_zone = self.client.get_zone_by_name('list-records.', status=(200, 404)) if get_zone and 'zone' in get_zone: self.zone = get_zone['zone'] self.all_records = self.client.list_recordsets_by_zone(self.zone['id'])['recordSets'] my_groups = self.client.list_my_groups(group_name_filter='list-records-group') if my_groups and 'groups' in my_groups and len(my_groups['groups']) > 0: self.group = my_groups['groups'][0] def build(self): # Only call this if the context needs to be built self.tear_down() group = { 'name': 'list-records-group', 'email': '*****@*****.**', 'description': 'this is a description', 'members': [{'id': 'list-records-user'}], 'admins': [{'id': 'list-records-user'}] } self.group = self.client.create_group(group, status=200) zone_change = self.client.create_zone( { 'name': 'list-records.', 'email': '*****@*****.**', 'shared': False, 'adminGroupId': self.group['id'], 'isTest': True, 'backendId': 'func-test-backend' }, status=202) self.client.wait_until_zone_active(zone_change[u'zone'][u'id']) self.zone = zone_change[u'zone'] self.all_records = self.client.list_recordsets_by_zone(self.zone['id'])['recordSets'] def tear_down(self): clear_zones(self.client) clear_groups(self.client) def check_recordsets_page_accuracy(self, list_results_page, size, offset, nextId=False, startFrom=False, maxItems=100, recordTypeFilter=False, nameSort="ASC"): # validate fields if nextId: assert_that(list_results_page, has_key('nextId')) else: assert_that(list_results_page, is_not(has_key('nextId'))) if startFrom: assert_that(list_results_page['startFrom'], is_(startFrom)) else: assert_that(list_results_page, is_not(has_key('startFrom'))) if recordTypeFilter: assert_that(list_results_page, has_key('recordTypeFilter')) else: assert_that(list_results_page, is_not(has_key('recordTypeFilter'))) assert_that(list_results_page['maxItems'], is_(maxItems)) assert_that(list_results_page['nameSort'], is_(nameSort)) # validate actual page list_results_recordsets_page = list_results_page['recordSets'] assert_that(list_results_recordsets_page, has_length(size)) for i in range(len(list_results_recordsets_page)): assert_that(list_results_recordsets_page[i]['name'], is_(self.all_records[i+offset]['name'])) verify_recordset(list_results_recordsets_page[i], self.all_records[i+offset]) assert_that(list_results_recordsets_page[i]['accessLevel'], is_('Delete')) def check_recordsets_parameters(self, list_results_page, nextId=False, startFrom=False, maxItems=100, recordTypeFilter=False, nameSort="ASC"): # validate fields if nextId: assert_that(list_results_page, has_key('nextId')) else: assert_that(list_results_page, is_not(has_key('nextId'))) if startFrom: assert_that(list_results_page['startFrom'], is_(startFrom)) else: assert_that(list_results_page, is_not(has_key('startFrom'))) if recordTypeFilter: assert_that(list_results_page, has_key('recordTypeFilter')) else: assert_that(list_results_page, is_not(has_key('recordTypeFilter'))) assert_that(list_results_page['maxItems'], is_(maxItems)) assert_that(list_results_page['nameSort'], is_(nameSort))
class ListRecordSetsTestContext(object): def __init__(self, partition_id: str): self.partition_id = partition_id self.setup_started = False self.client = VinylDNSClient(VinylDNSTestContext.vinyldns_url, "listRecordsAccessKey", "listRecordsSecretKey") self.zone = None self.all_records = [] self.group = None get_zone = self.client.get_zone_by_name(f"list-records{partition_id}.", status=(200, 404)) if get_zone and "zone" in get_zone: self.zone = get_zone["zone"] self.all_records = self.client.list_recordsets_by_zone( self.zone["id"])["recordSets"] my_groups = self.client.list_my_groups( group_name_filter="list-records-group") if my_groups and "groups" in my_groups and len( my_groups["groups"]) > 0: self.group = my_groups["groups"][0] def setup(self): if self.setup_started: # Safeguard against reentrance return self.setup_started = True partition_id = self.partition_id group = { "name": f"list-records-group{partition_id}", "email": "*****@*****.**", "description": "this is a description", "members": [{ "id": "list-records-user" }], "admins": [{ "id": "list-records-user" }] } self.group = self.client.create_group(group, status=200) zone_change = self.client.create_zone( { "name": f"list-records{partition_id}.", "email": "*****@*****.**", "shared": False, "adminGroupId": self.group["id"], "isTest": True, "backendId": "func-test-backend" }, status=202) self.client.wait_until_zone_active(zone_change["zone"]["id"]) self.zone = zone_change["zone"] self.all_records = self.client.list_recordsets_by_zone( self.zone["id"])["recordSets"] def tear_down(self): self.client.clear_zones() self.client.clear_groups() self.client.tear_down() def check_recordsets_page_accuracy(self, list_results_page, size, offset, next_id=False, start_from=False, max_items=100, record_type_filter=False, name_sort="ASC"): # validate fields if next_id: assert_that(list_results_page, has_key("nextId")) else: assert_that(list_results_page, is_not(has_key("nextId"))) if start_from: assert_that(list_results_page["startFrom"], is_(start_from)) else: assert_that(list_results_page, is_not(has_key("startFrom"))) if record_type_filter: assert_that(list_results_page, has_key("recordTypeFilter")) else: assert_that(list_results_page, is_not(has_key("recordTypeFilter"))) assert_that(list_results_page["maxItems"], is_(max_items)) assert_that(list_results_page["nameSort"], is_(name_sort)) # validate actual page list_results_recordsets_page = list_results_page["recordSets"] assert_that(list_results_recordsets_page, has_length(size)) for i in range(len(list_results_recordsets_page)): assert_that(list_results_recordsets_page[i]["name"], is_(self.all_records[i + offset]["name"])) verify_recordset(list_results_recordsets_page[i], self.all_records[i + offset]) assert_that(list_results_recordsets_page[i]["accessLevel"], is_("Delete")) def check_recordsets_parameters(self, list_results_page, next_id=False, start_from=False, max_items=100, record_type_filter=False, name_sort="ASC"): # validate fields if next_id: assert_that(list_results_page, has_key("nextId")) else: assert_that(list_results_page, is_not(has_key("nextId"))) if start_from: assert_that(list_results_page["startFrom"], is_(start_from)) else: assert_that(list_results_page, is_not(has_key("startFrom"))) if record_type_filter: assert_that(list_results_page, has_key("recordTypeFilter")) else: assert_that(list_results_page, is_not(has_key("recordTypeFilter"))) assert_that(list_results_page["maxItems"], is_(max_items)) assert_that(list_results_page["nameSort"], is_(name_sort))