Skip to content

Commit f58f7f5

Browse files
added validation for departure date (#120)
1 parent df79db2 commit f58f7f5

2 files changed

Lines changed: 35 additions & 1 deletion

File tree

src/code42cli/cmds/departing_employee.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,17 @@ def departing_employee(state):
2525
@departing_employee.command()
2626
@username_arg
2727
@click.option(
28-
"--departure-date", help="The date the employee is departing. Format: yyyy-MM-dd."
28+
"--departure-date",
29+
help="The date the employee is departing. Format: yyyy-MM-dd.",
30+
type=click.DateTime(formats=["%Y-%m-%d"]),
2931
)
3032
@cloud_alias_option
3133
@notes_option
3234
@sdk_options
3335
def add(state, username, cloud_alias, departure_date, notes):
3436
"""Add a user to the departing-employee detection list."""
37+
if departure_date:
38+
departure_date = departure_date.strftime("%Y-%m-%d")
3539
_add_departing_employee(state.sdk, username, cloud_alias, departure_date, notes)
3640

3741

tests/cmds/test_departing_employee.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,33 @@ def test_remove_bulk_users_uses_expected_arguments(runner, mocker, cli_state_wit
157157
obj=cli_state_with_user,
158158
)
159159
assert bulk_processor.call_args[0][1] == ["test_user1", "test_user2"]
160+
161+
162+
def test_add_departing_employee_when_invalid_date_validation_raises_error(
163+
runner, cli_state_with_user
164+
):
165+
departure_date = "2020-02-30"
166+
result = runner.invoke(
167+
cli,
168+
["departing-employee", "add", _EMPLOYEE, "--departure-date", departure_date],
169+
obj=cli_state_with_user,
170+
)
171+
assert result.exit_code == 2
172+
assert (
173+
"Invalid value for '--departure-date': invalid datetime format" in result.output
174+
)
175+
176+
177+
def test_add_departing_employee_when_invalid_date_format_validation_raises_error(
178+
runner, cli_state_with_user
179+
):
180+
departure_date = "2020-30-01"
181+
result = runner.invoke(
182+
cli,
183+
["departing-employee", "add", _EMPLOYEE, "--departure-date", departure_date],
184+
obj=cli_state_with_user,
185+
)
186+
assert result.exit_code == 2
187+
assert (
188+
"Invalid value for '--departure-date': invalid datetime format" in result.output
189+
)

0 commit comments

Comments
 (0)