def test_set_policies(self): invalid_policy = {'mode': 'none'} with self.assertRaises(util.ConfigError): policy.Config().policies = {'invalid': invalid_policy} conf = policy.Config() conf.policies = {'valid': {'mxs': ['example.com']}} self.assertEqual(conf.get_policy_for('valid').mxs, ['example.com'])
def test_set_author(self): with self.assertRaises(util.ConfigError): policy.Config().load_from_dict({'author': 0}) with self.assertRaises(util.ConfigError): policy.Config().author = 0 conf = policy.Config() conf.author = "me" self.assertEqual(conf.author, "me")
def test_set_policies(self): invalid_policy = {'mode': 'none'} with self.assertRaises(util.ConfigError): policy.Config().policies = {'invalid': invalid_policy} conf = policy.Config() conf.policies = {'valid': {}} self.assertEqual( conf.get_policy_for('valid').min_tls_version, 'TLSv1.2')
def test_timestamp_and_expires_required(self): with self.assertRaises(util.ConfigError): policy.Config().load_from_dict( {'expires': datetime.datetime.now()}) with self.assertRaises(util.ConfigError): policy.Config().load_from_dict( {'timestamp': datetime.datetime.now()}) conf = policy.Config() conf.load_from_dict({ 'timestamp': datetime.datetime.now(), 'expires': datetime.datetime.now() }) self.assertTrue(isinstance(conf.timestamp, datetime.datetime)) self.assertTrue(isinstance(conf.expires, datetime.datetime))
def test_set_aliased_policy(self): conf = policy.Config() conf.policy_aliases = {'valid': {}} with self.assertRaises(util.ConfigError): conf.policies = {'invalid': {'policy-alias': 'invalid'}} conf.policies = {'valid': {'policy-alias': 'valid'}} self.assertEqual(conf.get_policy_for('valid').mode, 'testing')
def test_set_pins_for_policy(self): conf = policy.Config() conf.pinsets = {'valid': 'lol a pin'} with self.assertRaises(util.ConfigError): conf.policies = {'invalid': {'pin': 'invalid'}} conf.policies = {'valid': {'pin': 'valid'}} self.assertEqual(conf.get_policy_for('valid').pin, 'valid')
def test_set_aliased_policy(self): conf = policy.Config() conf.policy_aliases = {'valid': {}} with self.assertRaises(util.ConfigError): conf.policies = {'invalid': {'policy-alias': 'invalid'}} conf.policies = {'valid': {'policy-alias': 'valid'}} self.assertEqual( conf.get_policy_for('valid').min_tls_version, 'TLSv1.2')
def test_merge_keeps_old_settings(self): conf2 = policy.Config() conf2.author = "EFF" updated_timestamp = self.conf.expires - datetime.timedelta(days=1) conf2.timestamp = updated_timestamp new_conf = self.conf.merge(conf2) self.assertEqual(new_conf.author, "EFF") self.assertTrue(new_conf.timestamp is not None) self.assertEqual(new_conf.timestamp, updated_timestamp)
def test_no_aliasing_in_alias(self): conf = policy.Config() with self.assertRaises(util.ConfigError): conf.policy_aliases = { 'valid': {}, 'valid2': { 'policy-alias': 'valid' } }
def test_iter_policies_aliased(self): conf = policy.Config() conf.policy_aliases = {'valid': {'mode': 'enforce'}} conf.policies = { 'valid1': { 'policy-alias': 'valid' }, 'valid2': { 'policy-alias': 'valid' } } for val in conf: self.assertEqual(conf[val].mode, 'enforce')
def test_iter_policies_aliased(self): conf = policy.Config() conf.policy_aliases = {'valid': {'tls-report': 'https://tls.report'}} conf.policies = { 'valid1': { 'policy-alias': 'valid' }, 'valid2': { 'policy-alias': 'valid' } } for val in conf: self.assertEqual(conf[val].tls_report, 'https://tls.report')
def setUp(self): self.conf = policy.Config() self.conf.author = "EFF" self.conf.expires = datetime.datetime.now() self.conf.timestamp = datetime.datetime.now() self.sample_policy = { 'mxs': ['eff.org', '.eff.org'], 'mode': 'testing' } self.other_policy = { 'mxs': ['example.com', '.example.com'], 'mode': 'enforce' } self.conf.policies = {'eff.org': self.sample_policy}
def test_keys_empty_policy(self): conf2 = policy.Config() with self.assertRaises(StopIteration): next(iter(conf2.keys()))
def test_iter_policies(self): conf = policy.Config() sample_policy = {'tls-report': 'https://tls.report'} conf.policies = {'valid1': sample_policy, 'valid2': sample_policy} for val in conf: self.assertEqual(conf[val].tls_report, 'https://tls.report')
def test_bad_schema(self): conf = policy.Config(schema={"author": "Author field here"}) with self.assertRaises(util.ConfigError): conf.author = "Me"
def test_iter_policies(self): conf = policy.Config() sample_policy = {'mode': 'enforce'} conf.policies = {'valid1': sample_policy, 'valid2': sample_policy} for val in conf: self.assertEqual(conf[val].mode, 'enforce')
def test_merge_keeps_old_policies(self): conf2 = policy.Config() conf2.policies = {'example.com': self.other_policy} new_conf = self.conf.merge(conf2) self.assertTrue('example.com' in new_conf.policies) self.assertTrue('eff.org' in new_conf.policies)
def test_update_drops_old_policies(self): conf2 = policy.Config() conf2.policies = {'example.com': self.other_policy} new_conf = self.conf.update(conf2) self.assertTrue('example.com' in new_conf.policies) self.assertFalse('eff.org' in new_conf.policies)
def test_should_update_valid_type(self): conf2 = policy.Config() conf2.policies = {'example.com': self.other_policy} self.assertTrue(self.conf.should_update(conf2))
def test_len_method(self): conf2 = policy.Config() conf2.policies = {'example.com': self.other_policy} self.assertEqual(len(conf2), 1)
def test_update_drops_old_settings(self): conf2 = policy.Config() conf2.author = "EFF" new_conf = self.conf.update(conf2) self.assertEqual(new_conf.author, "EFF") self.assertEqual(new_conf.timestamp, None)
def _load_config(self): if self._policy_config is None: self._policy_config = policy.Config(filename=self._policy_filename) self._policy_config.load() return self._policy_config