1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- import tempfile
- import os.path
- import unittest
- import json
- from wheel.signatures import keys
- wheel_json = """
- {
- "verifiers": [
- {
- "scope": "+",
- "vk": "bp-bjK2fFgtA-8DhKKAAPm9-eAZcX_u03oBv2RlKOBc"
- },
- {
- "scope": "+",
- "vk": "KAHZBfyqFW3OcFDbLSG4nPCjXxUPy72phP9I4Rn9MAo"
- },
- {
- "scope": "+",
- "vk": "tmAYCrSfj8gtJ10v3VkvW7jOndKmQIYE12hgnFu3cvk"
- }
- ],
- "signers": [
- {
- "scope": "+",
- "vk": "tmAYCrSfj8gtJ10v3VkvW7jOndKmQIYE12hgnFu3cvk"
- },
- {
- "scope": "+",
- "vk": "KAHZBfyqFW3OcFDbLSG4nPCjXxUPy72phP9I4Rn9MAo"
- }
- ],
- "schema": 1
- }
- """
- class TestWheelKeys(unittest.TestCase):
- def setUp(self):
- self.config = tempfile.NamedTemporaryFile(suffix='.json')
- self.config.close()
-
- self.config_path, self.config_filename = os.path.split(self.config.name)
- def load(*args):
- return [self.config_path]
- def save(*args):
- return self.config_path
- keys.load_config_paths = load
- keys.save_config_path = save
- self.wk = keys.WheelKeys()
- self.wk.CONFIG_NAME = self.config_filename
-
- def tearDown(self):
- os.unlink(self.config.name)
-
- def test_load_save(self):
- self.wk.data = json.loads(wheel_json)
-
- self.wk.add_signer('+', '67890')
- self.wk.add_signer('scope', 'abcdefg')
-
- self.wk.trust('epocs', 'gfedcba')
- self.wk.trust('+', '12345')
-
- self.wk.save()
-
- del self.wk.data
- self.wk.load()
-
- signers = self.wk.signers('scope')
- self.assertTrue(signers[0] == ('scope', 'abcdefg'), self.wk.data['signers'])
- self.assertTrue(signers[1][0] == '+', self.wk.data['signers'])
-
- trusted = self.wk.trusted('epocs')
- self.assertTrue(trusted[0] == ('epocs', 'gfedcba'))
- self.assertTrue(trusted[1][0] == '+')
-
- self.wk.untrust('epocs', 'gfedcba')
- trusted = self.wk.trusted('epocs')
- self.assertTrue(('epocs', 'gfedcba') not in trusted)
-
- def test_load_save_incomplete(self):
- self.wk.data = json.loads(wheel_json)
- del self.wk.data['signers']
- self.wk.data['schema'] = self.wk.SCHEMA+1
- self.wk.save()
- try:
- self.wk.load()
- except ValueError:
- pass
- else:
- raise Exception("Expected ValueError")
-
- del self.wk.data['schema']
- self.wk.save()
- self.wk.load()
-
-
|