def setup(self): fh = open("tests/fixture/dynamodb-event.json") # Event data structure to load in order to mock a profile update self.event_json = fh.read() fh.close() self.event_gen = EventGenerator() from cis_identity_vault import vault self.v = vault.IdentityVault() os.environ["CIS_ENVIRONMENT"] = "testing" os.environ["CIS_REGION_NAME"] = "us-east-1" os.environ["DEFAULT_AWS_REGION"] = "us-east-1" self.v.connect() result = self.v.find_or_create() assert result is not None self.v.tag_vault() self.event_gen = EventGenerator() self.events_and_users = self.event_gen.events_and_users() os.environ["CIS_POSTGRES_HOST"] = "db" os.environ["CIS_POSTGRES_PORT"] = "5432" os.environ["CIS_DB_USER"] = "******" os.environ["CIS_DB_PASSWORD"] = "******" q = vault.RelationalIdentityVault() q.session() q.create()
def __init__(self): self.engine = vault.RelationalIdentityVault().engine() Session = sessionmaker() self.session = Session(bind=self.engine) self.scoped_session = scoped_session( sessionmaker(autocommit=False, autoflush=False, bind=self.engine)) rds.Base.query = self.scoped_session.query_property()
def test_user_delete(self): from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() u.create(user_profile=self.user_profile) u.delete(user_profile=self.user_profile) assert u.find(self.user_profile) is None
def test_table_init(self): os.environ["CIS_POSTGRES_HOST"] = "db" os.environ["CIS_POSTGRES_PORT"] = "5432" os.environ["CIS_DB_USER"] = "******" os.environ["CIS_DB_PASSWORD"] = "******" from cis_identity_vault import vault v = vault.RelationalIdentityVault() v.create() assert v.table() is not None v.delete()
def test_db_create(self): os.environ["CIS_POSTGRES_HOST"] = "db" os.environ["CIS_POSTGRES_PORT"] = "5432" os.environ["CIS_DB_USER"] = "******" os.environ["CIS_DB_PASSWORD"] = "******" os.environ["CIS_IDENTITY_VAULT"] = "purple-unicorn" from cis_identity_vault import vault v = vault.RelationalIdentityVault() v.find_or_create() v.delete()
def test_find_by_uuid(self): from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() u.create(user_profile=self.user_profile) s = user.ProfileRDS() search_result = s.find_by_uuid(self.user_profile["uuid"]["value"]) assert search_result.profile["uuid"]["value"] == self.user_profile[ "uuid"]["value"]
def test_user_update(self): from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() u.create(user_profile=self.user_profile) mutated_user_profile = self.user_profile mutated_user_profile["active"]["value"] = False u.update(user_profile=mutated_user_profile) u.delete(user_profile=self.user_profile)
def handle(event, context={}): """Handle the publishing of users.""" logger = setup_logging() v = vault.RelationalIdentityVault() v.find_or_create() exch = exchange.DynamoStream() user_ids = exch.user_ids_from_stream(event) profiles = exch.profiles(user_ids) postgres_vault = exchange.PostgresqlMapper() result = postgres_vault.to_postgres(profiles) logger.info(f'Profiles have been written to the vault with result: {result}') return 200
def test_find_by_email(self): from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() self.user_profile["primary_email"]["value"] = "*****@*****.**" u.create(user_profile=self.user_profile) primary_email = self.user_profile["primary_email"]["value"] s = user.ProfileRDS() search_result = s.find_by_email(primary_email) assert len(search_result) > 0
def test_user_delete(self): os.environ["CIS_POSTGRES_HOST"] = "db" os.environ["CIS_POSTGRES_PORT"] = "5432" os.environ["CIS_DB_USER"] = "******" os.environ["CIS_DB_PASSWORD"] = "******" from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() u.create(user_profile=self.user_profile) u.delete(user_profile=self.user_profile) assert u.find(self.user_profile) is None
def test_user_find(self): from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() res = u.create(user_profile=self.user_profile) positive_search_result = u.find(self.user_profile) assert positive_search_result is not None non_existant_user = FakeUser().as_dict() negative_search_result = u.find(non_existant_user) assert negative_search_result is None u.delete(user_profile=self.user_profile) assert res is not None
def test_user_update(self): os.environ["CIS_POSTGRES_HOST"] = "db" os.environ["CIS_POSTGRES_PORT"] = "5432" os.environ["CIS_DB_USER"] = "******" os.environ["CIS_DB_PASSWORD"] = "******" from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() u.create(user_profile=self.user_profile) mutated_user_profile = self.user_profile mutated_user_profile["active"]["value"] = False u.update(user_profile=mutated_user_profile) u.delete(user_profile=self.user_profile)
def test_find_by_uuid(self): os.environ["CIS_POSTGRES_HOST"] = "db" os.environ["CIS_POSTGRES_PORT"] = "5432" os.environ["CIS_DB_USER"] = "******" os.environ["CIS_DB_PASSWORD"] = "******" from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() u.create(user_profile=self.user_profile) s = user.ProfileRDS() search_result = s.find_by_uuid(self.user_profile["uuid"]["value"]) assert search_result.profile["uuid"]["value"] == self.user_profile[ "uuid"]["value"]
def test_find_by_email(self): os.environ["CIS_POSTGRES_HOST"] = "db" os.environ["CIS_POSTGRES_PORT"] = "5432" os.environ["CIS_DB_USER"] = "******" os.environ["CIS_DB_PASSWORD"] = "******" from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() self.user_profile["primary_email"]["value"] = "*****@*****.**" u.create(user_profile=self.user_profile) primary_email = self.user_profile["primary_email"]["value"] s = user.ProfileRDS() search_result = s.find_by_email(primary_email) assert len(search_result) > 0
def test_user_find(self): os.environ["CIS_POSTGRES_HOST"] = "db" os.environ["CIS_POSTGRES_PORT"] = "5432" os.environ["CIS_DB_USER"] = "******" os.environ["CIS_DB_PASSWORD"] = "******" from cis_identity_vault import vault from cis_identity_vault.models import user v = vault.RelationalIdentityVault() v.create() u = user.ProfileRDS() res = u.create(user_profile=self.user_profile) positive_search_result = u.find(self.user_profile) assert positive_search_result is not None non_existant_user = FakeUser().as_dict() negative_search_result = u.find(non_existant_user) assert negative_search_result is None u.delete(user_profile=self.user_profile) assert res is not None v.delete()
def test_table_init(self): from cis_identity_vault import vault v = vault.RelationalIdentityVault() v.create() assert v.table() is not None
def test_db_create(self): os.environ["CIS_IDENTITY_VAULT"] = "purple-unicorn" from cis_identity_vault import vault v = vault.RelationalIdentityVault() v.find_or_create()