Skip to content
Snippets Groups Projects
Select Git revision
  • fac4131dc38abc43b83394c80f7d04865515e1ce
  • develop default protected
  • master protected
  • authorship-fix-from-develop
  • 1048-service-config-backfilling
  • feature/nat-1211-edgeport-lacp-xmit
  • fix/nat-1120-sdp-validation
  • NAT-1154-import-edge-port-update
  • fix/l3-imports
  • feature/10GGBS-NAT-980
  • fix/NAT-1009/fix-redeploy-base-config-if-there-is-a-vprn
  • 4.24
  • 4.23
  • 4.22
  • 4.21
  • 4.20
  • 4.19
  • 4.18
  • 4.17
  • 4.16
  • 4.15
  • 4.14
  • 4.13
  • 4.12
  • 4.11
  • 4.10
  • 4.8
  • 4.5
  • 4.4
  • 4.3
  • 4.2
31 results

workflow_steps.py

Blame
  • test_survey.py 4.32 KiB
    import json
    import jsonschema
    from compendium_v2.db import db
    from compendium_v2.db.survey_models import Survey, SurveyStatus
    from compendium_v2.routes.survey import LIST_SURVEYS_RESPONSE_SCHEMA
    
    
    def test_survey_route_list_response(client, test_survey_data, mocked_admin_user):
        rv = client.get(
            '/api/survey/list',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 200
        result = json.loads(rv.data.decode('utf-8'))
        jsonschema.validate(result, LIST_SURVEYS_RESPONSE_SCHEMA)
        assert result
    
    
    def test_survey_route_new(app, client, test_survey_data, mocked_user):
        rv = client.post(
            '/api/survey/new',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 400
        result = json.loads(rv.data.decode('utf-8'))
        assert not result.get('success')
    
        # mark all surveys as published
        with app.app_context():
            for survey in db.session.query(Survey).all():
                survey.status = SurveyStatus.published
            db.session.commit()
    
        rv = client.post(
            '/api/survey/new',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 200
        result = json.loads(rv.data.decode('utf-8'))
        assert result == {'success': True}
    
        rv = client.post(
            '/api/survey/new',
            headers={'Accept': ['application/json']})
        assert rv.status_code != 200
    
    
    def test_survey_route_open_close(app, client, test_survey_data, mocked_user):
        rv = client.post(
            '/api/survey/new',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 400
        result = json.loads(rv.data.decode('utf-8'))
        assert not result.get('success')
    
        # mark all surveys as published
        with app.app_context():
            for survey in db.session.query(Survey).all():
                survey.status = SurveyStatus.published
            db.session.commit()
    
        rv = client.post(
            '/api/survey/new',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 200
        result = json.loads(rv.data.decode('utf-8'))
        assert result.get('success')
    
        rv = client.post(
            '/api/survey/open/2024',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 200
        result = json.loads(rv.data.decode('utf-8'))
        assert result == {'success': True}
    
        rv = client.post(
            '/api/survey/open/2024',
            headers={'Accept': ['application/json']})
        assert rv.status_code != 200
    
        rv = client.post(
            '/api/survey/close/2024',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 200
        result = json.loads(rv.data.decode('utf-8'))
        assert result == {'success': True}
    
        rv = client.post(
            '/api/survey/close/2024',
            headers={'Accept': ['application/json']})
        assert rv.status_code != 200
    
    
    def test_survey_route_preview(app, client, test_survey_data, mocked_admin_user, mocker):
        rv = client.post(
            '/api/survey/preview/2023',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 400
        result = json.loads(rv.data.decode('utf-8'))
        assert not result.get('success')
    
        with app.app_context():
            survey = db.session.query(Survey).filter(Survey.year == 2023).first()
            survey.status = SurveyStatus.closed
            db.session.commit()
    
        mocker.patch('compendium_v2.routes.survey.publish', lambda year: None)
    
        rv = client.post(
            '/api/survey/preview/2023',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 200
        result = json.loads(rv.data.decode('utf-8'))
        assert result.get('success')
    
    
    def test_survey_route_publish(app, client, test_survey_data, mocked_admin_user, mocker):
        rv = client.post(
            '/api/survey/publish/2023',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 400
        result = json.loads(rv.data.decode('utf-8'))
        assert not result.get('success')
    
        with app.app_context():
            survey = db.session.query(Survey).filter(Survey.year == 2023).first()
            survey.status = SurveyStatus.preview
            db.session.commit()
    
        mocker.patch('compendium_v2.routes.survey.publish', lambda year: None)
    
        rv = client.post(
            '/api/survey/publish/2023',
            headers={'Accept': ['application/json']})
        assert rv.status_code == 200
        result = json.loads(rv.data.decode('utf-8'))
        assert result.get('success')