Ejemplo n.º 1
0
    def test_update_draft_to_proposed_success(self, **kwargs):
        credit_trades = [{
            'numberOfCredits': 1,
            'status': STATUS_DRAFT,
            'initiator': 2,
            'respondent': self.fs1_id,
            'type': self.ct_type_id
        }, {
            'numberOfCredits': 5,
            'status': STATUS_DRAFT,
            'initiator': 2,
            'respondent': self.fs1_id,
            'type': self.ct_type_id
        }]

        self.test_create_success()
        for ct in credit_trades:
            # Create
            response = fake_api_calls.create_credit_trade_dict(ct)
            assert status.HTTP_201_CREATED == response.status_code

            # Update
            ct['status'] = STATUS_SUBMITTED
            updated_response = fake_api_calls.update_credit_trade_dict(
                ct,
                response.json()['id'])

            assert status.HTTP_200_OK == updated_response.status_code
Ejemplo n.º 2
0
    def test_create_draft_or_proposed(self, **kwargs):
        credit_trades = [{
            'numberOfCredits': 1,
            'status': STATUS_DRAFT,
            'initiator': 2,
            'respondent': self.fs1_id,
            'type': self.ct_type_id
        }, {
            'numberOfCredits': 1,
            'status': STATUS_SUBMITTED,
            'initiator': 2,
            'respondent': self.fs1_id,
            'type': self.ct_type_id
        }]

        for ct in credit_trades:
            response = fake_api_calls.create_credit_trade_dict(ct)
            assert status.HTTP_201_CREATED == response.status_code

            # Make sure action statuses are "Draft" and "Submitted"
            # And Button actions are "Save as Draft" and "Propose"
            new_ct = fake_api_calls.get_credit_trade(response.json()['id'])
            if ct['status'] == STATUS_DRAFT:
                statuses = [a['status'] for a in new_ct.json()['actions']]
                actions = [a['action'] for a in new_ct.json()['actions']]
                assert sorted(["Draft", "Submitted"]) == sorted(statuses)
                assert sorted(["Save Draft", "Propose"]) == sorted(actions)
Ejemplo n.º 3
0
    def test_create_other_statuses_fail(self, **kwargs):
        credit_trades = [{
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_ACCEPTED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "status": [
                    "Status cannot be "
                    "`Accepted` on create. "
                    "Use `Draft` or `Submitted` instead."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_RECOMMENDED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "status": [
                    "Status cannot be "
                    "`Recommended` on create. "
                    "Use `Draft` or `Submitted` instead."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_APPROVED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "status": [
                    "Status cannot be "
                    "`Approved` on create. "
                    "Use `Draft` or `Submitted` instead."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_COMPLETED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "status": [
                    "Status cannot be "
                    "`Completed` on create. "
                    "Use `Draft` or `Submitted` instead."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_CANCELLED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "status": [
                    "Status cannot be "
                    "`Cancelled` on create. "
                    "Use `Draft` or `Submitted` instead."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_DECLINED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "status": [
                    "Status cannot be "
                    "`Declined` on create. "
                    "Use `Draft` or `Submitted` instead."
                ]
            }
        }]

        for tests in credit_trades:
            response = fake_api_calls.create_credit_trade_dict(tests['data'])
            self.assertJSONEqual(response.content.decode("utf-8"),
                                 tests['error'])
            assert response.status_code == status.HTTP_400_BAD_REQUEST
Ejemplo n.º 4
0
    def test_create_other_statuses_fail(self, **kwargs):
        credit_trades = [{
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_ACCEPTED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "invalidStatus": [
                    "You do not have permission to set"
                    " statuses to `Accepted`."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_RECOMMENDED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "invalidStatus": [
                    "You do not have permission to set"
                    " statuses to `Recommended`."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_APPROVED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "invalidStatus": [
                    "You do not have permission to set"
                    " statuses to `Approved`."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_COMPLETED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "invalidStatus": [
                    "You do not have permission to set"
                    " statuses to `Completed`."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_CANCELLED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "invalidStatus": [
                    "You do not have permission to set"
                    " statuses to `Cancelled`."
                ]
            }
        }, {
            'data': {
                'numberOfCredits': 1,
                'status': STATUS_DECLINED,
                'respondent': self.fs1_id,
                'type': self.ct_type_id
            },
            'error': {
                "invalidStatus": [
                    "You do not have permission to set"
                    " statuses to `Declined`."
                ]
            }
        }]

        for tests in credit_trades:
            response = fake_api_calls.create_credit_trade_dict(tests['data'])
            self.assertJSONEqual(response.content.decode("utf-8"),
                                 tests['error'])
            assert response.status_code == status.HTTP_400_BAD_REQUEST