Esempio n. 1
0
    def setUp(self):
        single_full_app_fixture = get_fixture("single_full_app.json")
        self.filter = AddOwnerConstraintFilter()

        self.request_app = AsgardApp.from_json(single_full_app_fixture)
        self.original_app = AsgardApp.from_json(single_full_app_fixture)
        self.user = UserDB()
        self.account_dev = Account(**ACCOUNT_DEV_DICT)
        self.user.current_account = self.account_dev
    def setUp(self, single_full_app_fixture):
        self.filter = AddOwnerConstraintFilter()
        rebuild_schema()
        self.session = HollowmanSession()
        self.user = User(tx_email="*****@*****.**",
                         tx_name="John Doe",
                         tx_authkey="69ed620926be4067a36402c3f7e9ddf0")
        self.account_dev = Account(id=4,
                                   name="Dev Team",
                                   namespace="dev",
                                   owner="company")
        self.user.accounts = [self.account_dev]
        self.session.add(self.user)
        self.session.add(self.account_dev)
        self.session.commit()

        self.request_app = SieveMarathonApp.from_json(single_full_app_fixture)
        self.original_app = SieveMarathonApp.from_json(single_full_app_fixture)
        self.user.current_account = self.account_dev
Esempio n. 3
0
    RequestResource.QUEUE: "response_queue",
}

FILTERS_PIPELINE = {
    FilterType.REQUEST: {
        OperationType.READ: (),
        OperationType.WRITE: (
            NameSpaceFilter(),
            TransformJSONFilter(),
            AddURIFilter(),
            DefaultScaleFilter(),
            ForcePullFilter(),
            TrimRequestFilter(),
            AddAppNameFilter(),
            BasicConstraintFilter(),
            AddOwnerConstraintFilter(),
            IncompatibleFieldsFilter(),
            LabelsFilter(),
        )
    },
    FilterType.RESPONSE: {
        OperationType.READ: (
            NameSpaceFilter(),
            TransformJSONFilter(),
        ),
        OperationType.WRITE: (
            NameSpaceFilter(),
            TransformJSONFilter(),
        )
    }
}
class OwnerFilterTest(unittest.TestCase):
    @with_json_fixture("single_full_app.json")
    def setUp(self, single_full_app_fixture):
        self.filter = AddOwnerConstraintFilter()
        rebuild_schema()
        self.session = HollowmanSession()
        self.user = User(tx_email="*****@*****.**",
                         tx_name="John Doe",
                         tx_authkey="69ed620926be4067a36402c3f7e9ddf0")
        self.account_dev = Account(id=4,
                                   name="Dev Team",
                                   namespace="dev",
                                   owner="company")
        self.user.accounts = [self.account_dev]
        self.session.add(self.user)
        self.session.add(self.account_dev)
        self.session.commit()

        self.request_app = SieveMarathonApp.from_json(single_full_app_fixture)
        self.original_app = SieveMarathonApp.from_json(single_full_app_fixture)
        self.user.current_account = self.account_dev

    def test_create_app_add_constraint_app_with_no_constraint(self):
        self.request_app.constraints = []
        filtered_app = self.filter.write(self.user, self.request_app,
                                         SieveMarathonApp())

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(1, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_update_app_add_constraint_app_with_no_constraint(self):
        self.request_app.constraints = []
        self.original_app.constraints = []
        filtered_app = self.filter.write(self.user, self.request_app,
                                         self.original_app)

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(1, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_create_app_constraint_exist_with_wrong_value(self):
        self.request_app.constraints.append(
            MarathonConstraint(field="owner",
                               operator="LIKE",
                               value="other-owner"))
        filtered_app = self.filter.write(self.user, self.request_app,
                                         SieveMarathonApp())

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_update_app_constraint_exist_with_wrong_value(self):
        self.request_app.constraints.append(
            MarathonConstraint(field="owner",
                               operator="LIKE",
                               value="other-owner"))
        filtered_app = self.filter.write(self.user, self.request_app,
                                         self.original_app)

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_create_app_add_constraint_app_with_other_constraints(self):
        filtered_app = self.filter.write(self.user, self.request_app,
                                         SieveMarathonApp())

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_update_app_add_constraint_app_with_other_constraints(self):
        filtered_app = self.filter.write(self.user, self.request_app,
                                         self.original_app)

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_update_app_trying_to_remove_constraint(self):
        self.original_app.constraints.append(
            MarathonConstraint(field="owner",
                               operator="LIKE",
                               value=self.account_dev.owner))
        filtered_app = self.filter.write(self.user, self.request_app,
                                         self.original_app)

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(
            "srv2.*",
            filtered_app.get_constraints_by_name("hostname")[0].value)
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)
Esempio n. 5
0
class OwnerFilterTest(TestCase):
    def setUp(self):
        single_full_app_fixture = get_fixture("single_full_app.json")
        self.filter = AddOwnerConstraintFilter()

        self.request_app = AsgardApp.from_json(single_full_app_fixture)
        self.original_app = AsgardApp.from_json(single_full_app_fixture)
        self.user = UserDB()
        self.account_dev = Account(**ACCOUNT_DEV_DICT)
        self.user.current_account = self.account_dev

    def test_create_app_add_constraint_app_with_no_constraint(self):
        self.request_app.constraints = []
        filtered_app = self.filter.write(self.user, self.request_app,
                                         AsgardApp())

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(1, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_update_app_add_constraint_app_with_no_constraint(self):
        self.request_app.constraints = []
        self.original_app.constraints = []
        filtered_app = self.filter.write(self.user, self.request_app,
                                         self.original_app)

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(1, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_create_app_constraint_exist_with_wrong_value(self):
        self.request_app.constraints.append(
            MarathonConstraint(field="owner",
                               operator="LIKE",
                               value="other-owner"))
        filtered_app = self.filter.write(self.user, self.request_app,
                                         AsgardApp())

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_update_app_constraint_exist_with_wrong_value(self):
        self.request_app.constraints.append(
            MarathonConstraint(field="owner",
                               operator="LIKE",
                               value="other-owner"))
        filtered_app = self.filter.write(self.user, self.request_app,
                                         self.original_app)

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_create_app_add_constraint_app_with_other_constraints(self):
        filtered_app = self.filter.write(self.user, self.request_app,
                                         AsgardApp())

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_update_app_add_constraint_app_with_other_constraints(self):
        filtered_app = self.filter.write(self.user, self.request_app,
                                         self.original_app)

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)

    def test_update_app_trying_to_remove_constraint(self):
        self.original_app.constraints.append(
            MarathonConstraint(field="owner",
                               operator="LIKE",
                               value=self.account_dev.owner))
        filtered_app = self.filter.write(self.user, self.request_app,
                                         self.original_app)

        owner_constraint = filtered_app.get_constraints_by_name("owner")
        self.assertEqual(2, len(filtered_app.constraints))
        self.assertEqual(
            "srv2.*",
            filtered_app.get_constraints_by_name("hostname")[0].value)
        self.assertEqual(1, len(owner_constraint))
        self.assertEqual(self.account_dev.owner, owner_constraint[0].value)