|
2 | 2 |
|
3 | 3 | from pydantic import AnyUrl
|
4 | 4 |
|
5 |
| -from pydantic_scim2 import Address |
6 | 5 | from pydantic_scim2 import AddressKind
|
7 |
| -from pydantic_scim2 import Email |
8 | 6 | from pydantic_scim2 import EmailKind
|
9 |
| -from pydantic_scim2 import GroupMember |
10 |
| -from pydantic_scim2 import Im |
11 | 7 | from pydantic_scim2 import ImKind
|
12 |
| -from pydantic_scim2 import Meta |
13 |
| -from pydantic_scim2 import Name |
14 |
| -from pydantic_scim2 import PhoneNumber |
15 | 8 | from pydantic_scim2 import PhoneNumberKind
|
16 |
| -from pydantic_scim2 import Photo |
17 | 9 | from pydantic_scim2 import PhotoKind
|
18 | 10 | from pydantic_scim2 import User
|
19 |
| -from pydantic_scim2 import X509Certificate |
20 | 11 |
|
21 | 12 |
|
22 | 13 | def test_minimal_user(minimal_user_payload):
|
@@ -46,111 +37,104 @@ def test_full_user(full_user_payload):
|
46 | 37 | assert obj.id == "2819c223-7f76-453a-919d-413861904646"
|
47 | 38 | assert obj.externalId == "701984"
|
48 | 39 | 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" |
57 | 47 | assert obj.displayName == "Babs Jensen"
|
58 | 48 | assert obj.nickName == "Babs"
|
59 | 49 | 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 |
100 | 87 | assert obj.userType == "Employee"
|
101 | 88 | assert obj.title == "Tour Guide"
|
102 | 89 | assert obj.preferredLanguage == "en-US"
|
103 | 90 | assert obj.locale == "en-US"
|
104 | 91 | assert obj.timezone == "America/Los_Angeles"
|
105 | 92 | assert obj.active is True
|
106 | 93 | 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" |
156 | 140 | )
|
0 commit comments