def _create_branch(self, key, name): if not key or not name: return "Invalid key or name" error = [None] def execute(id): if Branch.get_by_key_name(key): error[0] = 'Branch "%s" already exists' % key return branch = Branch(id=id, name=name, key_name=key) branch.put() return branch create_in_transaction_with_numeric_id_holder(execute) return error[0]
def _create_platform(self, key, name): if not key or not name: return "Invalid key name" error = [None] def execute(id): if Platform.get_by_key_name(key): error[0] = 'Platform "%s" already exists' % key return platform = Platform(id=id, name=name, key_name=key) platform.put() return platform create_in_transaction_with_numeric_id_holder(execute) return error[0]
def test_model_from_numeric_id(self): def execute(id): return Branch(id=id, name='some branch', key_name='some-branch').put() branch = Branch.get(create_in_transaction_with_numeric_id_holder(execute)) self.assertEqual(model_from_numeric_id(branch.id, Branch).key(), branch.key()) self.assertEqual(model_from_numeric_id(branch.id + 1, Branch), None) delete_model_with_numeric_id_holder(branch) self.assertEqual(model_from_numeric_id(branch.id, Branch), None)
def test_model_from_numeric_id(self): def execute(id): return Branch(id=id, name='some branch', key_name='some-branch').put() branch = Branch.get(create_in_transaction_with_numeric_id_holder(execute)) self.assertEqual(model_from_numeric_id(branch.id, Branch).key(), branch.key()) self.assertEqual(model_from_numeric_id(branch.id + 1, Branch), None) delete_model_with_numeric_id_holder(branch) self.assertEqual(model_from_numeric_id(branch.id, Branch), None)
def test_failing_in_create_in_transaction_with_numeric_id_holder(self): def execute(id): return None self.assertThereIsNoInstanceOf(Branch) self.assertThereIsNoInstanceOf(NumericIdHolder) self.assertFalse(create_in_transaction_with_numeric_id_holder(execute)) self.assertThereIsNoInstanceOf(Branch) self.assertThereIsNoInstanceOf(NumericIdHolder)
def test_delete_model_with_numeric_id_holder(self): def execute(id): return Branch(id=id, name='some branch', key_name='some-branch').put() branch = Branch.get(create_in_transaction_with_numeric_id_holder(execute)) self.assertOnlyInstance(branch) delete_model_with_numeric_id_holder(branch) self.assertThereIsNoInstanceOf(Branch) self.assertThereIsNoInstanceOf(NumericIdHolder)
def test_failing_in_create_in_transaction_with_numeric_id_holder(self): def execute(id): return None self.assertThereIsNoInstanceOf(Branch) self.assertThereIsNoInstanceOf(NumericIdHolder) self.assertFalse(create_in_transaction_with_numeric_id_holder(execute)) self.assertThereIsNoInstanceOf(Branch) self.assertThereIsNoInstanceOf(NumericIdHolder)
def test_delete_model_with_numeric_id_holder(self): def execute(id): return Branch(id=id, name='some branch', key_name='some-branch').put() branch = Branch.get(create_in_transaction_with_numeric_id_holder(execute)) self.assertOnlyInstance(branch) delete_model_with_numeric_id_holder(branch) self.assertThereIsNoInstanceOf(Branch) self.assertThereIsNoInstanceOf(NumericIdHolder)
def test_delete_model_with_numeric_id_holder(self): def execute(id): return models.Branch(id=id, name='some branch', key_name='some-branch').put() branch = models.Branch.get(models.create_in_transaction_with_numeric_id_holder(execute)) self.assertEqual(len(models.NumericIdHolder.all().fetch(5)), 1) models.delete_model_with_numeric_id_holder(branch) self.assertEqual(len(models.Branch.all().fetch(5)), 0) self.assertEqual(len(models.NumericIdHolder.all().fetch(5)), 0)
def test_failing_in_create_in_transaction_with_numeric_id_holder(self): def execute(id): return None self.assertEqual(len(models.Branch.all().fetch(5)), 0) self.assertEqual(len(models.NumericIdHolder.all().fetch(5)), 0) self.assertFalse(models.create_in_transaction_with_numeric_id_holder(execute)) self.assertEqual(len(models.Branch.all().fetch(5)), 0) self.assertEqual(len(models.NumericIdHolder.all().fetch(5)), 0)
def _add_test_if_needed(self, test_name, branch, platform): def execute(id): test = Test.get_by_key_name(test_name) returnValue = None if not test: test = Test(id=id, name=test_name, key_name=test_name) returnValue = test if branch.key() not in test.branches: test.branches.append(branch.key()) if platform.key() not in test.platforms: test.platforms.append(platform.key()) test.put() return returnValue return create_in_transaction_with_numeric_id_holder(execute) or Test.get_by_key_name(test_name)
def test_create_in_transaction_with_numeric_id_holder(self): def execute(id): return Branch(id=id, name='some branch', key_name='some-branch').put() self.assertThereIsNoInstanceOf(Branch) self.assertThereIsNoInstanceOf(NumericIdHolder) self.assertTrue(create_in_transaction_with_numeric_id_holder(execute)) branches = Branch.all().fetch(5) self.assertEqual(len(branches), 1) self.assertEqual(branches[0].name, 'some branch') self.assertEqual(branches[0].key().name(), 'some-branch') self._assert_there_is_exactly_one_id_holder_and_matches(branches[0].id)
def test_create_in_transaction_with_numeric_id_holder(self): def execute(id): return Branch(id=id, name='some branch', key_name='some-branch').put() self.assertThereIsNoInstanceOf(Branch) self.assertThereIsNoInstanceOf(NumericIdHolder) self.assertTrue(create_in_transaction_with_numeric_id_holder(execute)) branches = Branch.all().fetch(5) self.assertEqual(len(branches), 1) self.assertEqual(branches[0].name, 'some branch') self.assertEqual(branches[0].key().name(), 'some-branch') self._assert_there_is_exactly_one_id_holder_and_matches(branches[0].id)