Skip to content

Commit ec6c3cd

Browse files
author
Gaurav Singh
committed
Extracted create person into its own method and added test for delete operation
1 parent 1a494c4 commit ec6c3cd

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

tests/people_test.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
from json import dumps
2+
from uuid import uuid4
3+
14
import requests
25
from assertpy.assertpy import assert_that
36

4-
from json import dumps
57
from config import BASE_URI
6-
from utils.print_helpers import pretty_print
7-
from uuid import uuid4
88

99

1010
def test_read_all_has_kent():
@@ -20,6 +20,29 @@ def test_read_all_has_kent():
2020

2121

2222
def test_new_person_can_be_added():
23+
unique_last_name = create_new_person()
24+
25+
# After user is created, we read all the users and then use filter expression to find if the
26+
# created user is present in the response list
27+
peoples = requests.get(BASE_URI).json()
28+
is_new_user_created = [person for person in peoples if person['lname'] == unique_last_name]
29+
assert_that(is_new_user_created).is_not_empty()
30+
31+
32+
def test_created_person_can_be_deleted():
33+
persons_last_name = create_new_person()
34+
if not persons_last_name:
35+
raise AssertionError('User not created')
36+
37+
peoples = requests.get(BASE_URI).json()
38+
newly_created_user = [person for person in peoples if person['lname'] == persons_last_name][0]
39+
40+
delete_url = f'{BASE_URI}/{newly_created_user["person_id"]}'
41+
response = requests.delete(delete_url)
42+
assert_that(response.status_code).is_equal_to(requests.codes.ok)
43+
44+
45+
def create_new_person():
2346
# Ensure a user with a unique last name is created everytime the test runs
2447
# Note: json.dumps() is used to convert python dict to json string
2548
unique_last_name = f'User {str(uuid4())}'
@@ -38,9 +61,4 @@ def test_new_person_can_be_added():
3861
# We use requests.post method with keyword params to make the request more readable
3962
response = requests.post(url=BASE_URI, data=payload, headers=headers)
4063
assert_that(response.status_code).is_equal_to(requests.codes.no_content)
41-
42-
# After user is created, we read all the users and then use filter expression to find if the
43-
# created user is present in the response list
44-
people = requests.get(BASE_URI).json()
45-
is_new_user_created = filter(lambda person: person['lname'] == unique_last_name, people)
46-
assert_that(is_new_user_created).is_true()
64+
return unique_last_name

0 commit comments

Comments
 (0)