예제 #1
0
 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'])
예제 #2
0
 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")
예제 #3
0
 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')
예제 #4
0
 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))
예제 #5
0
 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')
예제 #6
0
 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')
예제 #7
0
 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')
예제 #8
0
 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)
예제 #9
0
 def test_no_aliasing_in_alias(self):
     conf = policy.Config()
     with self.assertRaises(util.ConfigError):
         conf.policy_aliases = {
             'valid': {},
             'valid2': {
                 'policy-alias': 'valid'
             }
         }
예제 #10
0
 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')
예제 #11
0
 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')
예제 #12
0
 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}
예제 #13
0
 def test_keys_empty_policy(self):
     conf2 = policy.Config()
     with self.assertRaises(StopIteration):
         next(iter(conf2.keys()))
예제 #14
0
 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')
예제 #15
0
 def test_bad_schema(self):
     conf = policy.Config(schema={"author": "Author field here"})
     with self.assertRaises(util.ConfigError):
         conf.author = "Me"
예제 #16
0
 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')
예제 #17
0
 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)
예제 #18
0
 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)
예제 #19
0
 def test_should_update_valid_type(self):
     conf2 = policy.Config()
     conf2.policies = {'example.com': self.other_policy}
     self.assertTrue(self.conf.should_update(conf2))
예제 #20
0
 def test_len_method(self):
     conf2 = policy.Config()
     conf2.policies = {'example.com': self.other_policy}
     self.assertEqual(len(conf2), 1)
예제 #21
0
 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)
예제 #22
0
 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