예제 #1
0
def test__missing_code_edit__redirect_on_valid_post(user, missing_shift_code):
    """Test for proper redirection on valid post."""
    valid_data = {
        'monday_start': '01:00:00',
        'monday_duration': '1.1',
        'tuesday_start': '02:00:00',
        'tuesday_duration': '2.2',
        'wednesday_start': '03:00:00',
        'wednesday_duration': '3.3',
        'thursday_start': '04:00:00',
        'thursday_duration': '4.4',
        'friday_start': '05:00:00',
        'friday_duration': '5.5',
        'saturday_start': '06:00:00',
        'saturday_duration': '6.6',
        'sunday_start': '07:00:00',
        'sunday_duration': '7.7',
        'stat_start': '08:00:00',
        'stat_duration': '8.8',
    }

    # Add permission to user
    utils.add_add_default_codes_permissions(user)

    # Set up client and response
    client = Client()
    client.force_login(user=user)
    response = client.post(
        reverse('rdrhc_calendar:missing_code_edit',
                kwargs={'code_id': missing_shift_code.id}),
        valid_data,
    )

    assert response.status_code == 302
예제 #2
0
def test__missing_code_list__url_exists_at_desired_location(calendar_user):
    """Test that URL exists at desired location."""
    # Add permission to user
    utils.add_add_default_codes_permissions(calendar_user.sb_user)

    # Set up client and response
    client = Client()
    client.force_login(user=calendar_user.sb_user)
    response = client.get('/rdrhc-calendar/missing-codes/')

    assert response.status_code == 200
예제 #3
0
def test__missing_code_list__template(user):
    """Test for proper template in missing_code_list views."""
    # Add permission to user
    utils.add_add_default_codes_permissions(user)

    # Set up client and response
    client = Client()
    client.force_login(user=user)
    response = client.get(reverse('rdrhc_calendar:missing_code_list'))

    # Test for template
    assert ('rdrhc_calendar/missingshiftcode_list.html'
            in [t.name for t in response.templates])
예제 #4
0
def test__missing_code_list__200_response_if_authorized(calendar_user):
    """Tests for 200 response when user is logged in with permissions."""
    # Add permission to user
    utils.add_add_default_codes_permissions(calendar_user.sb_user)

    # Set up client and response
    client = Client()
    client.force_login(user=calendar_user.sb_user)
    response = client.get(reverse('rdrhc_calendar:missing_code_list'))

    # Check that user logged in
    assert response.context['user'] == calendar_user.sb_user
    assert response.status_code == 200
예제 #5
0
def test__missing_code_delete__redirect_on_valid_post(user,
                                                      missing_shift_code):
    """Test for proper redirection on valid post."""
    # Add permission to user
    utils.add_add_default_codes_permissions(user)

    # Set up client and response
    client = Client()
    client.force_login(user=user)
    response = client.post(
        reverse('rdrhc_calendar:missing_code_delete',
                kwargs={'code_id': missing_shift_code.id}))

    assert response.status_code == 302
예제 #6
0
def test__missing_code_delete__instance_deleted_on_valid_post(
        user, missing_shift_code):
    """Tests model entry is properly deleted on valid post."""
    # Get current model count
    missing_count = models.MissingShiftCode.objects.count()

    # Add permission to user
    utils.add_add_default_codes_permissions(user)

    # Set up client and response
    client = Client()
    client.force_login(user=user)
    client.post(
        reverse('rdrhc_calendar:missing_code_delete',
                kwargs={'code_id': missing_shift_code.id}))

    assert models.MissingShiftCode.objects.count() == missing_count - 1
예제 #7
0
def test__mising_code_edit__unique_validation(user, missing_shift_code):
    """Tests that unique code is properly maintained."""
    valid_data = {
        'monday_start': '01:00:00',
        'monday_duration': '1.1',
        'tuesday_start': '02:00:00',
        'tuesday_duration': '2.2',
        'wednesday_start': '03:00:00',
        'wednesday_duration': '3.3',
        'thursday_start': '04:00:00',
        'thursday_duration': '4.4',
        'friday_start': '05:00:00',
        'friday_duration': '5.5',
        'saturday_start': '06:00:00',
        'saturday_duration': '6.6',
        'sunday_start': '07:00:00',
        'sunday_duration': '7.7',
        'stat_start': '08:00:00',
        'stat_duration': '8.8',
    }

    # Add permission to user
    utils.add_add_default_codes_permissions(user)

    # Set up client and response
    client = Client()
    client.force_login(user=user)
    response = client.post(
        reverse('rdrhc_calendar:missing_code_edit',
                kwargs={'code_id': missing_shift_code.id}),
        valid_data,
    )

    # Get messages
    messages = list(get_messages(response.wsgi_request))

    # Confirm error repsponse message
    assert messages[0].tags == 'error'
    assert messages[0].message == 'Shift code already exists for role.'