def testIncrementDoesNotSave(self): kv_path = self._CreateVersionsFile(self.expected) kv = keys.KeyVersions(kv_path) kv.Increment('firmware_data_key') kv2 = keys.KeyVersions(kv_path) self.assertEqual(self.expected['firmware_version'], kv2._versions['firmware_version'])
def testSaveSaves(self): kv_path = self._CreateVersionsFile(self.expected) kv = keys.KeyVersions(kv_path) kv.Increment('firmware_data_key') kv.Set('new', 37) kv.Save() self.assertEqual(True, kv.saved) kv2 = keys.KeyVersions(kv_path) self.assertDictEqual(kv._versions, kv2._versions)
def testSetMarksDirty(self): kv_path = self._CreateVersionsFile({}) kv = keys.KeyVersions(kv_path) self.assertEqual(True, kv.saved) kv.Set('firmware_data_key', 10) self.assertEqual(10, kv._versions['firmware_version']) self.assertEqual(False, kv.saved)
def testKeyNameIsIdempotent(self): kv_path = self._CreateVersionsFile({}) kv = keys.KeyVersions(kv_path) self.assertEqual('B_version', kv._KeyName(kv._KeyName('B_data_key'))) self.assertEqual('B_version', kv._KeyName(kv._KeyName('B_data_key.loem1'))) self.assertEqual('B_version', kv._KeyName(kv._KeyName('B_version')))
def testKeyNameTransformsName(self): kv_path = self._CreateVersionsFile({}) kv = keys.KeyVersions(kv_path) self.assertEqual('firmware_version', kv._KeyName('firmware_data_key')) self.assertEqual('firmware_version', kv._KeyName('firmware_data_key.loem1')) self.assertEqual('firmware_version', kv._KeyName('firmware_version'))
def testKeyNameCorrectlyAppends_version(self): """Does not append _version if there is a key with the name already.""" kv_path = self._CreateVersionsFile({}) kv = keys.KeyVersions(kv_path) kv._versions['foo'] = 'bar' kv._versions['bar'] = 2 self.assertEqual('foo', kv._KeyName('foo')) self.assertEqual('bar', kv._KeyName('bar')) self.assertEqual('baz_version', kv._KeyName('baz'))
def testInitReturnsDefaultButDoesNotCreateFile(self): kv_path = os.path.join(self.tempdir, 'key.versions') kv = keys.KeyVersions(kv_path) self.assertNotExists(kv_path) expected = { 'name': 'unknown', 'firmware_key_version': 1, 'firmware_version': 1, 'kernel_key_version': 1, 'kernel_version': 1, } self.assertEqual(False, kv.saved) self.assertDictEqual(expected, kv._versions)
def testIncrementRaisesOnOverflow(self): kv_path = self._CreateVersionsFile({'firmware_version': 0xffff}) kv = keys.KeyVersions(kv_path) with self.assertRaises(keys.VersionOverflowError): kv.Increment('firmware_data_key') self.assertEqual(0xffff, kv._versions['firmware_version'])
def testIncrementIncrementsAndMarksDirty(self): kv_path = self._CreateVersionsFile({'firmware_version': 30}) kv = keys.KeyVersions(kv_path) kv.Increment('firmware_data_key') self.assertEqual(31, kv._versions['firmware_version']) self.assertEqual(False, kv.saved)
def testSetSetsValue(self): kv_path = self._CreateVersionsFile({}) kv = keys.KeyVersions(kv_path) kv.Set('firmware_data_key', 10) self.assertEqual(10, kv._versions['firmware_version'])
def testGetReturnsNoneForUnknown(self): kv_path = self._CreateVersionsFile(self.expected) kv = keys.KeyVersions(kv_path) self.assertEqual(None, kv.Get('invalid'))
def testGetReturnsValue(self): kv_path = self._CreateVersionsFile(self.expected) kv = keys.KeyVersions(kv_path) self.assertEqual(self.expected['firmware_version'], kv.Get('firmware_data_key'))
def testInitErrorOnBadFileContents(self): kv_path = self._CreateVersionsFile({}) osutils.WriteFile(kv_path, 'firmware_version=bogus\n') with self.assertRaises(ValueError): keys.KeyVersions(kv_path)
def testInitReadsFile(self): kv_path = self._CreateVersionsFile(self.expected) kv = keys.KeyVersions(kv_path) self.assertDictEqual(self.expected, kv._versions) self.assertEqual(True, kv.saved)