コード例 #1
0
def test_lot():
    assert api_stubs.lot(slug="foo") == {
        "id": 1,
        "slug": "foo",
        "name": "Foo",
        "allowsBrief": False,
        "oneServiceLimit": False,
    }
コード例 #2
0
def test_lot():
    assert api_stubs.lot(slug="foo") == {
        "id": 1,
        "slug": "foo",
        "name": "Foo",
        "allowsBrief": False,
        "oneServiceLimit": False,
    }
コード例 #3
0
 def setup(self):
     super(TestResponseResultPage, self).setup()
     lots = [api_stubs.lot(slug="digital-specialists", allows_brief=True)]
     self.framework = api_stubs.framework(status="live", slug="digital-outcomes-and-specialists",
                                          clarification_questions_open=False, lots=lots)
     self.brief = api_stubs.brief(status='live')
     self.brief['briefs']['essentialRequirements'] = ['Must one', 'Must two', 'Must three']
     self.brief['briefs']['evaluationType'] = ['Interview', 'Scenario or test', 'Presentation', 'Written proposal',
                                               'Work history']
     with self.app.test_client():
         self.login(application_id=1)
コード例 #4
0
    def test_get_framework_and_lot_404s_if_allows_brief_required(self):
        data_api_client = mock.Mock()
        data_api_client.get_framework.return_value = api_stubs.framework(
            slug='digital-outcomes-and-specialists',
            status='live',
            lots=[
                api_stubs.lot(slug='digital-specialists', allows_brief=False)
            ]
        )

        self.assertRaises(NotFound, helpers.buyers_helpers.get_framework_and_lot, 'digital-outcomes-and-specialists',
                          'digital-specialists', data_api_client, {'must_allow_brief': True})
コード例 #5
0
    def test_get_framework_and_lot_404s_if_allows_brief_required(self):
        data_api_client = mock.Mock()
        data_api_client.get_framework.return_value = api_stubs.framework(
            slug='digital-outcomes-and-specialists',
            status='live',
            lots=[
                api_stubs.lot(slug='digital-specialists', allows_brief=False)
            ]
        )

        self.assertRaises(NotFound, helpers.buyers_helpers.get_framework_and_lot, 'digital-outcomes-and-specialists',
                          'digital-specialists', data_api_client, {'must_allow_brief': True})
コード例 #6
0
    def test_get_framework_and_lot_404s_for_wrong_framework_status(self):
        data_api_client = mock.Mock()
        data_api_client.get_framework.return_value = api_stubs.framework(
            slug='digital-outcomes-and-specialists',
            status='open',
            lots=[
                api_stubs.lot(slug='digital-specialists', allows_brief=True)
            ]
        )

        self.assertRaises(NotFound, helpers.buyers_helpers.get_framework_and_lot, 'digital-outcomes-and-specialists',
                          'digital-specialists', data_api_client, {'status': 'live'})
コード例 #7
0
    def test_get_framework_and_lot_404s_for_wrong_framework_status(self):
        data_api_client = mock.Mock()
        data_api_client.get_framework.return_value = api_stubs.framework(
            slug='digital-outcomes-and-specialists',
            status='open',
            lots=[
                api_stubs.lot(slug='digital-specialists', allows_brief=True)
            ]
        )

        self.assertRaises(NotFound, helpers.buyers_helpers.get_framework_and_lot, 'digital-outcomes-and-specialists',
                          'digital-specialists', data_api_client, {'status': 'live'})
    def test_404_if_framework_status_is_not_live(self, data_api_client):
        with self.app.app_context():
            data_api_client.get_framework.return_value = api_stubs.framework(
                slug='digital-outcomes-and-specialists',
                status='open',
                lots=[
                    api_stubs.lot(slug='user-research-studios'),
                ]
            )

            res = self.client.get(
                "/buyers/frameworks/digital-outcomes-and-specialists/requirements/user-research-studios")
            assert res.status_code == 404
    def test_404_if_lot_does_not_allow_brief(self, data_api_client):
        with self.app.app_context():
            data_api_client.get_framework.return_value = api_stubs.framework(
                slug='digital-outcomes-and-specialists',
                status='live',
                lots=[
                    api_stubs.lot(slug='digital-specialists', allows_brief=False)
                ]
            )

            res = self.client.get(
                "/buyers/frameworks/digital-outcomes-and-specialists/requirements/digital-specialists")
            assert res.status_code == 404
コード例 #10
0
    def setup(self):
        super(TestRespondToBrief, self).setup()

        self.brief = api_stubs.brief(status='live')
        self.brief['briefs']['essentialRequirements'] = ['Essential one', 'Essential two', 'Essential three']
        self.brief['briefs']['niceToHaveRequirements'] = ['Nice one', 'Top one', 'Get sorted']

        lots = [api_stubs.lot(slug="digital-specialists", allows_brief=True)]
        self.framework = api_stubs.framework(status="live", slug="digital-outcomes-and-specialists",
                                             clarification_questions_open=False, lots=lots)

        with self.app.test_client():
            self.login()
    def test_show_start_studios_info_page(self, data_api_client):
        with self.app.app_context():
            data_api_client.get_framework.return_value = api_stubs.framework(
                slug='digital-outcomes-and-specialists',
                status='live',
                lots=[
                    api_stubs.lot(slug='user-research-studios'),
                ]
            )

            res = self.client.get(
                "/buyers/frameworks/digital-outcomes-and-specialists/requirements/user-research-studios")
            assert res.status_code == 200
            document = html.fromstring(res.get_data(as_text=True))
            assert document.xpath('//h1')[0].text_content().strip() == "Find a user research lab"
    def test_404_if_lot_does_not_allow_brief(self, data_api_client):
        with self.app.app_context():
            data_api_client.get_framework.return_value = api_stubs.framework(
                slug='digital-outcomes-and-specialists',
                status='live',
                lots=[
                    api_stubs.lot(slug='digital-specialists', allows_brief=False)
                ]
            )

            res = self.client.get(
                self.expand_path(
                    "/buyers/frameworks/digital-outcomes-and-specialists/requirements/digital-specialists"
                ))
            assert res.status_code == 404
コード例 #13
0
    def test_show_start_brief_info_page(self, data_api_client):
        with self.app.app_context():
            data_api_client.get_framework.return_value = api_stubs.framework(
                slug='digital-service-professionals',
                status='live',
                lots=[
                    api_stubs.lot(slug='digital-professionals',
                                  allows_brief=True),
                ])

            res = self.client.get(
                self.expand_path(
                    "/buyers/frameworks/digital-service-professionals/requirements/digital-professionals"
                ))
            assert res.status_code == 404
コード例 #14
0
    def setup(self):
        super(TestCreateResponseToBrief, self).setup()

        self.brief = api_stubs.brief(status='live', lot_slug='digital-specialists')
        self.brief['briefs']['essentialRequirements'] = ['Essential one', 'Essential two', 'Essential three']
        self.brief['briefs']['niceToHaveRequirements'] = ['Nice one', 'Top one', 'Get sorted']
        self.brief['briefs']['dates'] = {}
        self.brief['briefs']['dates']['closing_time'] = '2016-11-23T07:00:00+00:00'

        lots = [api_stubs.lot(slug="digital-specialists", allows_brief=True)]
        self.framework = api_stubs.framework(status="live", slug="digital-outcomes-and-specialists",
                                             clarification_questions_open=False, lots=lots)

        with self.app.test_client():
            self.login(application_id=1)
    def test_404_if_framework_status_is_not_live(self, data_api_client):
        with self.app.app_context():
            data_api_client.get_framework.return_value = api_stubs.framework(
                slug='digital-outcomes-and-specialists',
                status='open',
                lots=[
                    api_stubs.lot(slug='user-research-studios'),
                ]
            )

            res = self.client.get(
                self.expand_path(
                    "/buyers/frameworks/digital-outcomes-and-specialists/requirements/user-research-studios"
                ))
            assert res.status_code == 404
    def test_show_start_studios_info_page(self, data_api_client):
        with self.app.app_context():
            data_api_client.get_framework.return_value = api_stubs.framework(
                slug='digital-outcomes-and-specialists',
                status='live',
                lots=[
                    api_stubs.lot(slug='user-research-studios'),
                ]
            )

            res = self.client.get(
                self.expand_path(
                    "/buyers/frameworks/digital-outcomes-and-specialists/requirements/user-research-studios"
                ))
            assert res.status_code == 200
            document = html.fromstring(res.get_data(as_text=True))
            assert document.xpath('//h1')[0].text_content().strip() == "Find a user research lab"
    def test_show_start_brief_info_page(self, data_api_client):
        with self.app.app_context():
            data_api_client.get_framework.return_value = api_stubs.framework(
                slug='digital-service-professionals',
                status='live',
                lots=[
                    api_stubs.lot(slug='digital-professionals', allows_brief=True),
                ]
            )

            res = self.client.get(
                self.expand_path(
                    "/buyers/frameworks/digital-service-professionals/requirements/digital-professionals"
                ))
            assert res.status_code == 200
            document = html.fromstring(res.get_data(as_text=True))
            assert document.xpath('//h1')[0].text_content().strip() == "Finding an individual specialist"
コード例 #18
0
 def setup(self):
     super(TestResponseResultPage, self).setup()
     lots = [api_stubs.lot(slug="digital-specialists", allows_brief=True)]
     self.framework = api_stubs.framework(
         status="live",
         slug="digital-outcomes-and-specialists",
         clarification_questions_open=False,
         lots=lots)
     self.brief = api_stubs.brief(status='live')
     self.brief['briefs']['essentialRequirements'] = [
         'Must one', 'Must two', 'Must three'
     ]
     self.brief['briefs']['evaluationType'] = [
         'Interview', 'Scenario or test', 'Presentation',
         'Written proposal', 'Work history'
     ]
     with self.app.test_client():
         self.login(application_id=1)
コード例 #19
0
    def setup(self):
        super(TestRespondToBrief, self).setup()

        self.brief = api_stubs.brief(status='live')
        self.brief['briefs']['essentialRequirements'] = [
            'Essential one', 'Essential two', 'Essential three'
        ]
        self.brief['briefs']['niceToHaveRequirements'] = [
            'Nice one', 'Top one', 'Get sorted'
        ]

        lots = [api_stubs.lot(slug="digital-specialists", allows_brief=True)]
        self.framework = api_stubs.framework(
            status="live",
            slug="digital-outcomes-and-specialists",
            clarification_questions_open=False,
            lots=lots)

        with self.app.test_client():
            self.login()
コード例 #20
0
    def test_get_framework_and_lot(self):
        data_api_client = mock.Mock()
        data_api_client.get_framework.return_value = api_stubs.framework(
            slug='digital-outcomes-and-specialists',
            status='live',
            lots=[
                api_stubs.lot(slug='digital-specialists', allows_brief=True)
            ])

        framework, lot = helpers.buyers_helpers.get_framework_and_lot(
            'digital-outcomes-and-specialists', 'digital-specialists',
            data_api_client)

        assert framework['status'] == "live"
        assert framework['name'] == 'Digital Outcomes and Specialists'
        assert framework['slug'] == 'digital-outcomes-and-specialists'
        assert framework['clarificationQuestionsOpen'] is True
        assert lot == {
            'slug': 'digital-specialists',
            'oneServiceLimit': False,
            'allowsBrief': True,
            'id': 1,
            'name': 'Digital Specialists',
        }
コード例 #21
0
    def test_get_framework_and_lot(self):
        data_api_client = mock.Mock()
        data_api_client.get_framework.return_value = api_stubs.framework(
            slug='digital-outcomes-and-specialists',
            status='live',
            lots=[
                api_stubs.lot(slug='digital-specialists', allows_brief=True)
            ]
        )

        framework, lot = helpers.buyers_helpers.get_framework_and_lot('digital-outcomes-and-specialists',
                                                                      'digital-specialists',
                                                                      data_api_client)

        assert framework['status'] == "live"
        assert framework['name'] == 'Digital Outcomes and Specialists'
        assert framework['slug'] == 'digital-outcomes-and-specialists'
        assert framework['clarificationQuestionsOpen'] is True
        assert lot == {'slug': 'digital-specialists',
                       'oneServiceLimit': False,
                       'allowsBrief': True,
                       'id': 1,
                       'name': 'Digital Specialists',
                       }
コード例 #22
0
    def setup(self):
        super(TestCreateResponseToBrief, self).setup()

        self.brief = api_stubs.brief(status='live',
                                     lot_slug='digital-specialists')
        self.brief['briefs']['essentialRequirements'] = [
            'Essential one', 'Essential two', 'Essential three'
        ]
        self.brief['briefs']['niceToHaveRequirements'] = [
            'Nice one', 'Top one', 'Get sorted'
        ]
        self.brief['briefs']['dates'] = {}
        self.brief['briefs']['dates'][
            'closing_time'] = '2016-11-23T07:00:00+00:00'

        lots = [api_stubs.lot(slug="digital-specialists", allows_brief=True)]
        self.framework = api_stubs.framework(
            status="live",
            slug="digital-outcomes-and-specialists",
            clarification_questions_open=False,
            lots=lots)

        with self.app.test_client():
            self.login(application_id=1)
コード例 #23
0
def test_lot_name_default_is_made_from_slug():
    assert api_stubs.lot(slug="my-lot")["name"] == "My Lot"
コード例 #24
0
def test_lot_name_default_is_made_from_slug():
    assert api_stubs.lot(slug="my-lot")["name"] == "My Lot"
コード例 #25
0
    def setup(self):
        super(TestBriefQuestionAndAnswerSession, self).setup()

        self.brief = api_stubs.brief(status='live',
                                     lot_slug='digital-specialists')
        self.brief['briefs']['essentialRequirements'] = [
            'Essential one', 'Essential two', 'Essential three'
        ]
        self.brief['briefs']['niceToHaveRequirements'] = [
            'Nice one', 'Top one', 'Get sorted'
        ]
        self.brief['briefs']['dates'] = {}
        self.brief['briefs']['dates'][
            'closing_time'] = '2017-11-23T07:00:00+00:00'
        self.brief['briefs']['questionAndAnswerSessionDetails'] = False

        lots = [api_stubs.lot(slug="digital-specialists", allows_brief=True)]
        self.framework = api_stubs.framework(
            status="live",
            slug="digital-outcomes-and-specialists",
            clarification_questions_open=False,
            lots=lots)

        with self.app.test_client():
            self.login(application_id=1)

        self.supplier = {
            'supplier': {
                "supplierCode":
                5678,
                "application_id":
                9876,
                "frameworks": [{
                    "agreement_details": None,
                    "agreement_returned_at": None,
                    "countersigned_at": None,
                    "declaration": {},
                    "framework_id": 7,
                    "links": {},
                    "on_framework": None,
                    "supplier_code": 5678
                }],
                "agreed_to_master_agreement":
                True,
                "domains": {
                    "assessed": [
                        "Agile delivery and Governance", "Cyber security",
                        "User research and Design"
                    ],
                    "legacy": [
                        "Agile delivery and Governance", "Cyber security",
                        "User research and Design"
                    ],
                    "unassessed": []
                },
            }
        }

        self.application = {
            "application": {
                "application_id": 9876,
                "type": "new",
                "status": "approved"
            }
        }

        class CurrentUser(object):
            pass

        self.current_user = CurrentUser()
        self.current_user.application_id = "9876",
        self.current_user.supplier_code = "5678",
        self.current_user.role = "supplier",
        self.current_user.email = "*****@*****.**",
        self.current_user.id = "5678",
コード例 #26
0
    def setup(self):
        super(TestBriefQuestionAndAnswerSession, self).setup()

        self.brief = api_stubs.brief(status='live', lot_slug='digital-specialists')
        self.brief['briefs']['essentialRequirements'] = ['Essential one', 'Essential two', 'Essential three']
        self.brief['briefs']['niceToHaveRequirements'] = ['Nice one', 'Top one', 'Get sorted']
        self.brief['briefs']['dates'] = {}
        self.brief['briefs']['dates']['closing_time'] = '2017-11-23T07:00:00+00:00'
        self.brief['briefs']['questionAndAnswerSessionDetails'] = False

        lots = [api_stubs.lot(slug="digital-specialists", allows_brief=True)]
        self.framework = api_stubs.framework(status="live", slug="digital-outcomes-and-specialists",
                                             clarification_questions_open=False, lots=lots)

        with self.app.test_client():
            self.login(application_id=1)

        self.supplier = {
            'supplier': {
                "supplierCode": 5678,
                "application_id": 9876,
                "frameworks": [
                    {
                        "agreement_details": None,
                        "agreement_returned_at": None,
                        "countersigned_at": None,
                        "declaration": {},
                        "framework_id": 7,
                        "links": {},
                        "on_framework": None,
                        "supplier_code": 5678
                    }
                ],
                "agreed_to_master_agreement": True,
                "domains": {
                    "assessed": [
                        "Agile delivery and Governance",
                        "Cyber security",
                        "User research and Design"
                    ],
                    "legacy": [
                        "Agile delivery and Governance",
                        "Cyber security",
                        "User research and Design"
                    ],
                    "unassessed": []
                },
            }
        }

        self.application = {
            "application": {
                "application_id": 9876,
                "type": "new",
                "status": "approved"
            }
        }

        class CurrentUser(object):
            pass

        self.current_user = CurrentUser()
        self.current_user.application_id = "9876",
        self.current_user.supplier_code = "5678",
        self.current_user.role = "supplier",
        self.current_user.email = "*****@*****.**",
        self.current_user.id = "5678",