Example #1
0
 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
Example #2
0
 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
Example #3
0
 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
Example #4
0
    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}
Example #5
0
 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
Example #6
0
 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
Example #7
0
 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
Example #8
0
 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
Example #9
0
 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)
Example #10
0
 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
Example #11
0
    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)
Example #12
0
 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
Example #13
0
    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)
Example #14
0
    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
            }