def test_delete_absence_passed_client():
    personio = mock_personio()
    mock_absences()
    mock_delete_absence()
    absence = personio.get_absences(2116365)[0]
    absence._client = None
    assert absence.delete(client=personio) is True
def test_delete_absence_no_client():
    personio = mock_personio()
    mock_absences()
    absence = personio.get_absences(2116365)[0]
    absence._client = None
    with pytest.raises(PersonioError):
        absence.delete()
def test_get_absence_from_object_without_id():
    personio = mock_personio()
    mock_get_absence()
    mock_single_absences()
    absence_id_only = Absence(id_=2628890)
    absence = personio.get_absence(absence_id_only)
    absence.id_ = None
    personio.get_absence(absence)
Example #4
0
def test_mock_search_first():
    # mock data & configure personio
    mock_employees()
    personio = mock_personio()
    # search for employees
    result = personio.search_first("stallman")
    assert result.first_name == "Richard"
    assert result.last_name == "Stallman"
def test_delete_absence_no_id():
    personio = mock_personio()
    mock_absences()
    absence = personio.get_absences(2116365)[0]
    absence.id_ = None
    with pytest.raises(ValueError):
        absence.delete()
    with pytest.raises(ValueError):
        personio.delete_absence(absence)
def test_get_absence_from_id():
    personio = mock_personio()
    mock_get_absence()
    absence_id_only = Absence(id_=2628890)
    absence = personio.get_absence(absence_id_only)
    assert absence.employee.first_name == 'Alan'
    assert absence.employee.last_name == 'Turing'
    assert absence.id_ == 2628890
    assert absence.start_date == date(2021, 1, 1)
    assert absence.end_date == date(2021, 1, 10)
def test_get_absences_from_employee_objects():
    # mock endpoints & get absences for all employees
    mock_employees()
    mock_absences()
    personio = mock_personio()
    employees = personio.get_employees()
    assert employees
    absences = personio.get_absences(employees)
    # the response is not important (it does not match the input), but the function should accept
    # a list of Employee objects as parameter and return a result
    assert absences
Example #8
0
def test_mock_search():
    # mock data & configure personio
    mock_employees()
    personio = mock_personio()
    # search for employees
    results = personio.search("Ada Alan")
    assert len(results) == 2
    # check search index state
    index = personio.search_index
    assert index.valid
    assert index.index
    assert index.last_update > 0
def test_get_absence_types():
    mock_absence_types()
    # configure personio & get absences for alan
    personio = mock_personio()
    absence_types = personio.get_absence_types()
    # non-empty contents
    assert len(absence_types) == 3
    for at in absence_types:
        assert at.id_ > 0
        assert isinstance(at.name, str)
    # serialization matches input
    for source_dict, at in zip(json_dict_absence_types['data'], absence_types):
        target_dict = at.to_dict()
        assert source_dict == target_dict
def test_create_absence():
    mock_absence_types()
    mock_create_absence_no_halfdays()
    personio = mock_personio()
    absence_type = personio.get_absence_types()[0]
    employee = Employee(first_name="Alan",
                        last_name='Turing',
                        email='*****@*****.**')
    absence = Absence(client=personio,
                      employee=employee,
                      start_date=date(2020, 1, 1),
                      end_date=date(2020, 1, 10),
                      half_day_start=False,
                      half_day_end=False,
                      time_off_type=absence_type)
    absence.create()
    assert absence.id_
def test_get_absences():
    # configure personio & get absences for alan
    mock_absences()
    personio = mock_personio()
    absences = personio.get_absences(2116365)
    # validate
    assert len(absences) == 3
    selection = [a for a in absences if "marathon" in a.comment.lower()]
    assert len(selection) == 1
    marathon = selection[0]
    assert marathon.start_date == date(1944, 9, 1)
    assert marathon.half_day_start == 0
    assert marathon.half_day_end == 1
    assert marathon.status == 'approved'
    # validate serialization
    source_dict = json_dict_absence_alan['data'][0]
    target_dict = marathon.to_dict()
    compare_labeled_attributes(source_dict, target_dict)
def test_delete_absence():
    mock_delete_absence()
    personio = mock_personio()
    result = personio.delete_absence(2116365)
    assert result is True