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)