def _generate_policy_map_items(self, rules_map): policy_map_items = '' for name, rules in sorted(rules_map.items(), key=lambda x: normalize_name(x[0])): policy_map_items += self.ZONE_POLICY_MAP_ITEM.format( policyName=normalize_name(name)) return policy_map_items
def _generate_info_map_items(self, zones_map): """Generate a map of (zone_name -> zoneInfo), shorted by name. """ info_map_items = '' for zone_name, zones in sorted(zones_map.items(), key=lambda x: normalize_name(x[0])): info_map_items += self.ZONE_INFO_MAP_ITEM.format( zoneNormalizedName=normalize_name(zone_name), zoneFullName=zone_name) return info_map_items
def _get_validation_map_items(self, test_data): s = '' for zone_name, test_items in sorted(test_data.items()): s += self.VALIDATION_MAP_ITEM.format( zoneFullName=zone_name, zoneNormalizedName=normalize_name(zone_name)) return s
def _generate_infos(self): for zone_name, eras in self.zones_map.items(): zone_eras = [] for era in eras: policy_name = era.rules if policy_name in ['-', ':']: zone_policy = policy_name else: policy_name = normalize_name(policy_name) zone_policy = self.zone_policies[policy_name] # yapf: disable zone_eras.append({ 'offsetSeconds': era.offsetSecondsTruncated, 'zonePolicy': zone_policy, 'rulesDeltaSeconds': era.rulesDeltaSecondsTruncated, 'format': era.format, 'untilYear': era.untilYear, 'untilMonth': era.untilMonth, 'untilDay': era.untilDay, 'untilSeconds': era.untilSecondsTruncated, 'untilTimeSuffix': era.untilTimeSuffix, }) # yapf: enable self.zone_infos[zone_name] = {'name': zone_name, 'eras': zone_eras}
def _generate_validation_data_h_items(self, test_data): validation_items = '' for zone_name, test_items in sorted(test_data.items()): validation_items += self.VALIDATION_DATA_H_ITEM.format( validationDataClass=self.validation_data_class, zoneNormalizedName=normalize_name(zone_name)) return validation_items
def _get_validation_items(self, test_data): s = '' for zone_name, test_items in sorted(test_data.items()): test_items_str = self._get_test_items(test_items) s += self.VALIDATION_ITEM.format( zoneNormalizedName=normalize_name(zone_name), testItems=test_items_str) return s
def _generate_notable_policy_items(self, notable_policies): notable_policy_items = '' for name, reason in sorted(notable_policies.items()): notable_policy_items += \ self.ZONE_NOTABLE_POLICY_ITEM.format( policyName=normalize_name(name), policyReason=reason) return notable_policy_items
def _generate_removed_policy_items(self, removed_policies): removed_policy_items = '' for name, reason in sorted(removed_policies.items()): removed_policy_items += \ self.ZONE_REMOVED_POLICY_ITEM.format( policyName=normalize_name(name), policyReason=reason) return removed_policy_items
def _generate_policy_item(self, name, rules): rule_items = '' for rule in rules: rule_items += self.ZONE_RULE_ITEM.format( policyName=normalize_name(name), rawLine=normalize_raw(rule.rawLine), fromYear=rule.fromYear, toYear=rule.toYear, inMonth=rule.inMonth, onDayOfWeek=rule.onDayOfWeek, onDayOfMonth=rule.onDayOfMonth, atSeconds=rule.atSecondsTruncated, atTimeSuffix=rule.atTimeSuffix, deltaSeconds=rule.deltaSecondsTruncated, letter=rule.letter) return self.ZONE_POLICY_ITEM.format(policyName=normalize_name(name), numRules=len(rules), ruleItems=rule_items)
def _generate_test_cases(self, test_data): test_cases = '' for zone_name, _ in sorted(test_data.items()): test_case = self.TEST_CASE.format( dbNamespace=self.db_namespace, testClass=self.test_class, zoneNormalizedName=normalize_name(zone_name)) test_cases += test_case return test_cases
def _generate_info_item(self, zone_name, eras): era_items = '' for era in eras: era_items += self._generate_era_item(era) return self.ZONE_INFO_ITEM.format( zoneFullName=zone_name, zoneNormalizedName=normalize_name(zone_name), numEras=len(eras), eraItems=era_items)
def _generate_validation_data_cpp_items(self, test_data): validation_items = '' for zone_name, test_items in sorted(test_data.items()): test_items_string = self._generate_validation_data_cpp_test_items( zone_name, test_items) validation_item = self.VALIDATION_DATA_CPP_ITEM.format( validationDataClass=self.validation_data_class, zoneFullName=zone_name, zoneNormalizedName=normalize_name(zone_name), testItems=test_items_string) validation_items += validation_item return validation_items
def _generate_era_item(self, era): policy_name = era.rules if policy_name in ['-', ':']: zone_policy = "'%s'" % policy_name else: zone_policy = 'ZONE_POLICY_%s' % normalize_name(policy_name) return self.ZONE_ERA_ITEM.format( rawLine=normalize_raw(era.rawLine), offsetSeconds=era.offsetSecondsTruncated, zonePolicy=zone_policy, rulesDeltaSeconds=era.rulesDeltaSecondsTruncated, format=era.format, # preserve the %s untilYear=era.untilYear, untilMonth=era.untilMonth, untilDay=era.untilDay, untilSeconds=era.untilSecondsTruncated, untilTimeSuffix=era.untilTimeSuffix)
def _generate_policies(self): for name, rules in self.rules_map.items(): policy_rules = [] for rule in rules: # yapf: disable policy_rules.append({ 'fromYear': rule.fromYear, 'toYear': rule.toYear, 'inMonth': rule.inMonth, 'onDayOfWeek': rule.onDayOfWeek, 'onDayOfMonth': rule.onDayOfMonth, 'atSeconds': rule.atSecondsTruncated, 'atTimeSuffix': rule.atTimeSuffix, 'deltaSeconds': rule.deltaSecondsTruncated, 'letter': rule.letter }) # yapf: enable normalized_name = normalize_name(name) self.zone_policies[normalized_name] = { 'name': name, # policy name 'rules': policy_rules }