Beispiel #1
0
    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]
Beispiel #2
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]
Beispiel #3
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)
Beispiel #4
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)
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
    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)
Beispiel #8
0
    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)
Beispiel #9
0
    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)
Beispiel #10
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)
Beispiel #11
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)
Beispiel #12
0
    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)
Beispiel #13
0
    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)