def test_auto_free(self): pin_string = PinNumber.generate(TEST_KEY) pin = PinNumber.retrive(pin_string, key=TEST_KEY, free=True) self.assertFalse(pin.used) pin = PinNumber.retrive(pin_string) self.assertFalse(pin.used) pin_string = PinNumber.generate(TEST_KEY) pin = PinNumber.retrive(pin_string, key=TEST2_KEY, free=True) self.assertIsNone(pin) pin = PinNumber.retrive(pin_string) self.assertTrue(pin.used)
def get(self, **kwargs): pin = PinNumber.retrive(kwargs["pin"], "savegame") if pin is None: self.error(404) return game = pin.data.get() self.response.write(game.log)
def test_reuse_after_removal(self): pin_string = PinNumber.generate(TEST_KEY) pin = PinNumber.retrive(pin_string) self.assertTrue(pin.used) pin.free() self.assertFalse(pin.used) PinNumber.generate(TEST_KEY) self.assertEqual(len(PinNumber.query().fetch()), 1) PinNumber.generate(TEST_KEY) self.assertEqual(len(PinNumber.query().fetch()), 2)
def test_bad_pins(self): pin_string = PinNumber.generate(TEST_KEY) bad_string = str(int(pin_string) + 1000) self.assertIsNone(PinNumber.retrive("101")) self.assertIsNone(PinNumber.retrive("axbc")) self.assertIsNone(PinNumber.retrive(bad_string))
def test_generate_retrive_pin(self): pin_string = PinNumber.generate(TEST_KEY) self.assertEqual(len(pin_string), 8) pin = PinNumber.retrive(pin_string) self.assertEqual(pin.data_key, TEST_KEY)