def test_process_syncmap(): from ldap2pg.validators import syncmap assert [] == syncmap(None) rule = dict(grant=dict(privilege='rol', role='alice')) fixtures = [ # Canonical case. [rule], # full map dict (ldap2pg 2 format). dict(__all__=dict(__all__=[rule])), # Squeeze inner list. dict(__all__=dict(__all__=rule)), # Squeeze also schema. dict(__all__=rule), # Squeeze also database. rule, ] for raw in fixtures: v = syncmap(copy.deepcopy(raw)) assert isinstance(v, list) assert 1 == len(v) assert 'grant' in v[0] m = v[0]['grant'][0].as_dict() assert ['__all__'] == m['databases'] assert ['__all__'] == m['schemas']
def test_process_syncmap_bad(): from ldap2pg.validators import syncmap raw = dict(ldap=dict(base='dc=unit', attribute='cn')) with pytest.raises(ValueError): syncmap(raw) bad_fixtures = [ 'string_value', [None], ] for raw in bad_fixtures: with pytest.raises(ValueError): syncmap(raw)
def test_process_syncmap_legacy(): from ldap2pg.validators import syncmap grant = dict(privilege='rol', role='alice') fixtures = [ dict(db=dict(schema=dict(grant=grant))), dict(db=dict(grant=dict(schema='schema', **grant))), dict(grant=dict(database='db', schema='schema', **grant)), ] for raw in fixtures: v = syncmap(copy.deepcopy(raw)) assert isinstance(v, list) assert 1 == len(v) assert 'grant' in v[0] m = v[0]['grant'][0].as_dict() assert ['db'] == m['databases'] assert ['schema'] == m['schemas']