Skip to content

Commit 3a1d9b4

Browse files
committed
tests: full user test refactoring
1 parent e007bfc commit 3a1d9b4

File tree

1 file changed

+90
-106
lines changed

1 file changed

+90
-106
lines changed

tests/test_models.py

Lines changed: 90 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,12 @@
22

33
from pydantic import AnyUrl
44

5-
from pydantic_scim2 import Address
65
from pydantic_scim2 import AddressKind
7-
from pydantic_scim2 import Email
86
from pydantic_scim2 import EmailKind
9-
from pydantic_scim2 import GroupMember
10-
from pydantic_scim2 import Im
117
from pydantic_scim2 import ImKind
12-
from pydantic_scim2 import Meta
13-
from pydantic_scim2 import Name
14-
from pydantic_scim2 import PhoneNumber
158
from pydantic_scim2 import PhoneNumberKind
16-
from pydantic_scim2 import Photo
179
from pydantic_scim2 import PhotoKind
1810
from pydantic_scim2 import User
19-
from pydantic_scim2 import X509Certificate
2011

2112

2213
def test_minimal_user(minimal_user_payload):
@@ -46,111 +37,104 @@ def test_full_user(full_user_payload):
4637
assert obj.id == "2819c223-7f76-453a-919d-413861904646"
4738
assert obj.externalId == "701984"
4839
assert obj.userName == "[email protected]"
49-
assert obj.name == Name(
50-
formatted="Ms. Barbara J Jensen, III",
51-
familyName="Jensen",
52-
givenName="Barbara",
53-
middleName="Jane",
54-
honorificPrefix="Ms.",
55-
honorificSuffix="III",
56-
)
40+
assert obj.name
41+
assert obj.name.formatted == "Ms. Barbara J Jensen, III"
42+
assert obj.name.familyName == "Jensen"
43+
assert obj.name.givenName == "Barbara"
44+
assert obj.name.middleName == "Jane"
45+
assert obj.name.honorificPrefix == "Ms."
46+
assert obj.name.honorificSuffix == "III"
5747
assert obj.displayName == "Babs Jensen"
5848
assert obj.nickName == "Babs"
5949
assert obj.profileUrl == AnyUrl("https://login.example.com/bjensen")
60-
assert obj.emails == [
61-
Email(value="[email protected]", type=EmailKind.work, primary=True),
62-
Email(value="[email protected]", type=EmailKind.home),
63-
]
64-
assert obj.addresses == [
65-
Address(
66-
type=AddressKind.work,
67-
streetAddress="100 Universal City Plaza",
68-
locality="Hollywood",
69-
region="CA",
70-
postalCode="91608",
71-
country="USA",
72-
formatted="100 Universal City Plaza\nHollywood, CA 91608 USA",
73-
primary=True,
74-
),
75-
Address(
76-
type=AddressKind.home,
77-
streetAddress="456 Hollywood Blvd",
78-
locality="Hollywood",
79-
region="CA",
80-
postalCode="91608",
81-
country="USA",
82-
formatted="456 Hollywood Blvd\nHollywood, CA 91608 USA",
83-
),
84-
]
85-
assert obj.phoneNumbers == [
86-
PhoneNumber(value="555-555-5555", type=PhoneNumberKind.work),
87-
PhoneNumber(value="555-555-4444", type=PhoneNumberKind.mobile),
88-
]
89-
assert obj.ims == [Im(value="someaimhandle", type=ImKind.aim)]
90-
assert obj.photos == [
91-
Photo(
92-
value="https://photos.example.com/profilephoto/72930000000Ccne/F",
93-
type=PhotoKind.photo,
94-
),
95-
Photo(
96-
value="https://photos.example.com/profilephoto/72930000000Ccne/T",
97-
type=PhotoKind.thumbnail,
98-
),
99-
]
50+
assert obj.emails[0].value == "[email protected]"
51+
assert obj.emails[0].type == EmailKind.work
52+
assert obj.emails[0].primary is True
53+
assert obj.emails[1].value == "[email protected]"
54+
assert obj.emails[1].type == EmailKind.home
55+
assert obj.addresses[0].type == AddressKind.work
56+
assert obj.addresses[0].streetAddress == "100 Universal City Plaza"
57+
assert obj.addresses[0].locality == "Hollywood"
58+
assert obj.addresses[0].region == "CA"
59+
assert obj.addresses[0].postalCode == "91608"
60+
assert obj.addresses[0].country == "USA"
61+
assert (
62+
obj.addresses[0].formatted
63+
== "100 Universal City Plaza\nHollywood, CA 91608 USA"
64+
)
65+
assert obj.addresses[0].primary is True
66+
assert obj.addresses[1].type == AddressKind.home
67+
assert obj.addresses[1].streetAddress == "456 Hollywood Blvd"
68+
assert obj.addresses[1].locality == "Hollywood"
69+
assert obj.addresses[1].region == "CA"
70+
assert obj.addresses[1].postalCode == "91608"
71+
assert obj.addresses[1].country == "USA"
72+
assert obj.addresses[1].formatted == "456 Hollywood Blvd\nHollywood, CA 91608 USA"
73+
assert obj.phoneNumbers[0].value == "555-555-5555"
74+
assert obj.phoneNumbers[0].type == PhoneNumberKind.work
75+
assert obj.phoneNumbers[1].value == "555-555-4444"
76+
assert obj.phoneNumbers[1].type == PhoneNumberKind.mobile
77+
assert obj.ims[0].value == "someaimhandle"
78+
assert obj.ims[0].type == ImKind.aim
79+
assert obj.photos[0].value == AnyUrl(
80+
"https://photos.example.com/profilephoto/72930000000Ccne/F"
81+
)
82+
assert obj.photos[0].type == PhotoKind.photo
83+
assert obj.photos[1].value == AnyUrl(
84+
"https://photos.example.com/profilephoto/72930000000Ccne/T"
85+
)
86+
assert obj.photos[1].type == PhotoKind.thumbnail
10087
assert obj.userType == "Employee"
10188
assert obj.title == "Tour Guide"
10289
assert obj.preferredLanguage == "en-US"
10390
assert obj.locale == "en-US"
10491
assert obj.timezone == "America/Los_Angeles"
10592
assert obj.active is True
10693
assert obj.password == "t1meMa$heen"
107-
assert obj.groups == [
108-
GroupMember(
109-
value="e9e30dba-f08f-4109-8486-d5c6a331660a",
110-
ref="https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a",
111-
display="Tour Guides",
112-
),
113-
GroupMember(
114-
value="fc348aa8-3835-40eb-a20b-c726e15c55b5",
115-
ref="https://example.com/v2/Groups/fc348aa8-3835-40eb-a20b-c726e15c55b5",
116-
display="Employees",
117-
),
118-
GroupMember(
119-
value="71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
120-
ref="https://example.com/v2/Groups/71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
121-
display="US Employees",
122-
),
123-
]
124-
assert obj.x509Certificates == [
125-
X509Certificate(
126-
value=(
127-
"MIIDQzCCAqygAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCVVMx"
128-
"EzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAoMC2V4YW1wbGUuY29tMRQwEgYD"
129-
"VQQDDAtleGFtcGxlLmNvbTAeFw0xMTEwMjIwNjI0MzFaFw0xMjEwMDQwNjI0MzFa"
130-
"MH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQKDAtl"
131-
"eGFtcGxlLmNvbTEhMB8GA1UEAwwYTXMuIEJhcmJhcmEgSiBKZW5zZW4gSUlJMSIw"
132-
"IAYJKoZIhvcNAQkBFhNiamVuc2VuQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0B"
133-
"AQEFAAOCAQ8AMIIBCgKCAQEA7Kr+Dcds/JQ5GwejJFcBIP682X3xpjis56AK02bc"
134-
"1FLgzdLI8auoR+cC9/Vrh5t66HkQIOdA4unHh0AaZ4xL5PhVbXIPMB5vAPKpzz5i"
135-
"PSi8xO8SL7I7SDhcBVJhqVqr3HgllEG6UClDdHO7nkLuwXq8HcISKkbT5WFTVfFZ"
136-
"zidPl8HZ7DhXkZIRtJwBweq4bvm3hM1Os7UQH05ZS6cVDgweKNwdLLrT51ikSQG3"
137-
"DYrl+ft781UQRIqxgwqCfXEuDiinPh0kkvIi5jivVu1Z9QiwlYEdRbLJ4zJQBmDr"
138-
"SGTMYn4lRc2HgHO4DqB/bnMVorHB0CC6AV1QoFK4GPe1LwIDAQABo3sweTAJBgNV"
139-
"HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp"
140-
"Y2F0ZTAdBgNVHQ4EFgQU8pD0U0vsZIsaA16lL8En8bx0F/gwHwYDVR0jBBgwFoAU"
141-
"dGeKitcaF7gnzsNwDx708kqaVt0wDQYJKoZIhvcNAQEFBQADgYEAA81SsFnOdYJt"
142-
"Ng5Tcq+/ByEDrBgnusx0jloUhByPMEVkoMZ3J7j1ZgI8rAbOkNngX8+pKfTiDz1R"
143-
"C4+dx8oU6Za+4NJXUjlL5CvV6BEYb1+QAEJwitTVvxB/A67g42/vzgAtoRUeDov1"
144-
"+GFiBZ+GNF/cAYKcMtGcrs2i97ZkJMo="
145-
)
146-
)
147-
]
148-
assert obj.meta == Meta(
149-
resourceType="User",
150-
created=datetime.datetime(2010, 1, 23, 4, 56, 22, tzinfo=datetime.timezone.utc),
151-
lastModified=datetime.datetime(
152-
2011, 5, 13, 4, 42, 34, tzinfo=datetime.timezone.utc
153-
),
154-
version='W\\/"a330bc54f0671c9"',
155-
location="https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646",
94+
assert obj.groups[0].value == "e9e30dba-f08f-4109-8486-d5c6a331660a"
95+
assert obj.groups[0].ref == AnyUrl(
96+
"https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a"
97+
)
98+
assert obj.groups[0].display == "Tour Guides"
99+
assert obj.groups[1].value == "fc348aa8-3835-40eb-a20b-c726e15c55b5"
100+
assert obj.groups[1].ref == AnyUrl(
101+
"https://example.com/v2/Groups/fc348aa8-3835-40eb-a20b-c726e15c55b5"
102+
)
103+
assert obj.groups[1].display == "Employees"
104+
assert obj.groups[2].value == "71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7"
105+
assert obj.groups[2].ref == AnyUrl(
106+
"https://example.com/v2/Groups/71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7"
107+
)
108+
assert obj.groups[2].display == "US Employees"
109+
assert obj.x509Certificates[0].value == (
110+
"MIIDQzCCAqygAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCVVMx"
111+
"EzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAoMC2V4YW1wbGUuY29tMRQwEgYD"
112+
"VQQDDAtleGFtcGxlLmNvbTAeFw0xMTEwMjIwNjI0MzFaFw0xMjEwMDQwNjI0MzFa"
113+
"MH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQKDAtl"
114+
"eGFtcGxlLmNvbTEhMB8GA1UEAwwYTXMuIEJhcmJhcmEgSiBKZW5zZW4gSUlJMSIw"
115+
"IAYJKoZIhvcNAQkBFhNiamVuc2VuQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0B"
116+
"AQEFAAOCAQ8AMIIBCgKCAQEA7Kr+Dcds/JQ5GwejJFcBIP682X3xpjis56AK02bc"
117+
"1FLgzdLI8auoR+cC9/Vrh5t66HkQIOdA4unHh0AaZ4xL5PhVbXIPMB5vAPKpzz5i"
118+
"PSi8xO8SL7I7SDhcBVJhqVqr3HgllEG6UClDdHO7nkLuwXq8HcISKkbT5WFTVfFZ"
119+
"zidPl8HZ7DhXkZIRtJwBweq4bvm3hM1Os7UQH05ZS6cVDgweKNwdLLrT51ikSQG3"
120+
"DYrl+ft781UQRIqxgwqCfXEuDiinPh0kkvIi5jivVu1Z9QiwlYEdRbLJ4zJQBmDr"
121+
"SGTMYn4lRc2HgHO4DqB/bnMVorHB0CC6AV1QoFK4GPe1LwIDAQABo3sweTAJBgNV"
122+
"HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp"
123+
"Y2F0ZTAdBgNVHQ4EFgQU8pD0U0vsZIsaA16lL8En8bx0F/gwHwYDVR0jBBgwFoAU"
124+
"dGeKitcaF7gnzsNwDx708kqaVt0wDQYJKoZIhvcNAQEFBQADgYEAA81SsFnOdYJt"
125+
"Ng5Tcq+/ByEDrBgnusx0jloUhByPMEVkoMZ3J7j1ZgI8rAbOkNngX8+pKfTiDz1R"
126+
"C4+dx8oU6Za+4NJXUjlL5CvV6BEYb1+QAEJwitTVvxB/A67g42/vzgAtoRUeDov1"
127+
"+GFiBZ+GNF/cAYKcMtGcrs2i97ZkJMo="
128+
)
129+
assert obj.meta.resourceType == "User"
130+
assert obj.meta.created == datetime.datetime(
131+
2010, 1, 23, 4, 56, 22, tzinfo=datetime.timezone.utc
132+
)
133+
assert obj.meta.lastModified == datetime.datetime(
134+
2011, 5, 13, 4, 42, 34, tzinfo=datetime.timezone.utc
135+
)
136+
assert obj.meta.version == 'W\\/"a330bc54f0671c9"'
137+
assert (
138+
obj.meta.location
139+
== "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"
156140
)

0 commit comments

Comments
 (0)