Merge "Adds tests showing how mapping locals are handled"
This commit is contained in:
commit
8dce7a1777
@ -825,3 +825,89 @@ class TestUnicodeAssertionData(unit.BaseTestCase):
|
||||
full_name = '%s %s' % (fn, ln)
|
||||
user_name = values.get('user', {}).get('name')
|
||||
self.assertEqual(full_name, user_name)
|
||||
|
||||
|
||||
class TestMappingLocals(unit.BaseTestCase):
|
||||
mapping_split = {
|
||||
'rules': [
|
||||
{
|
||||
'local': [
|
||||
{
|
||||
'user': {'name': '{0}'},
|
||||
},
|
||||
{
|
||||
'group': {'id': 'd34db33f'}
|
||||
}
|
||||
],
|
||||
'remote': [
|
||||
{'type': 'idp_username'}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
mapping_combined = {
|
||||
'rules': [
|
||||
{
|
||||
'local': [
|
||||
{
|
||||
'user': {'name': '{0}'},
|
||||
'group': {'id': 'd34db33f'}
|
||||
}
|
||||
],
|
||||
'remote': [
|
||||
{'type': 'idp_username'}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
mapping_with_duplicate = {
|
||||
'rules': [
|
||||
{
|
||||
'local': [
|
||||
{'user': {'name': 'test_{0}'}},
|
||||
{'user': {'name': '{0}'}}
|
||||
],
|
||||
'remote': [{'type': 'idp_username'}]
|
||||
}
|
||||
]
|
||||
}
|
||||
assertion = {
|
||||
'idp_username': 'a_user'
|
||||
}
|
||||
|
||||
def process(self, rules):
|
||||
rp = mapping_utils.RuleProcessor(FAKE_MAPPING_ID, rules)
|
||||
return rp.process(self.assertion)
|
||||
|
||||
def test_local_list_gets_squashed_into_a_single_dictionary(self):
|
||||
expected = {
|
||||
'user': {
|
||||
'name': 'a_user',
|
||||
'domain': {'id': 'Federated'},
|
||||
'type': 'ephemeral'
|
||||
},
|
||||
'projects': [],
|
||||
'group_ids': ['d34db33f'],
|
||||
'group_names': []
|
||||
}
|
||||
|
||||
mapped_split = self.process(self.mapping_split['rules'])
|
||||
mapped_combined = self.process(self.mapping_combined['rules'])
|
||||
|
||||
self.assertEqual(expected, mapped_split)
|
||||
self.assertEqual(mapped_split, mapped_combined)
|
||||
|
||||
def test_when_local_list_gets_squashed_first_dict_wins(self):
|
||||
expected = {
|
||||
'user': {
|
||||
'name': 'test_a_user',
|
||||
'domain': {'id': 'Federated'},
|
||||
'type': 'ephemeral'
|
||||
},
|
||||
'projects': [],
|
||||
'group_ids': [],
|
||||
'group_names': []
|
||||
}
|
||||
|
||||
mapped = self.process(self.mapping_with_duplicate['rules'])
|
||||
self.assertEqual(expected, mapped)
|
||||
|
Loading…
Reference in New Issue
Block a user