from atlas_um.accounts_validation.reports import accounts_states_report from tests.atlas_um.factories.internal_user_domain_factory import ( InternalUserDomainFactory, ) from tests.atlas_um.factories.dna_account_factory import DNAAccountFactory from tests.atlas_um.factories.auth0_account_factory import Auth0AccountFactory from atlas_um.pgdb import Auth0AccountExternalState, DNAAccountExternalState from atlas_um.consts import AccountStateSource class TestAccountsStatesReport: def test_report_data(self, app, pgdb_session, faker): dna_account = DNAAccountFactory.build() pgdb_session.add(dna_account) auth0_account = Auth0AccountFactory.build() pgdb_session.add(auth0_account) dna_state = DNAAccountExternalState() dna_state.dna_account = dna_account dna_state.source = AccountStateSource.USM.value dna_state.last_login = faker.past_datetime() dna_state.is_active = False pgdb_session.add(dna_state) auth0_state = Auth0AccountExternalState() auth0_state.auth0_account = auth0_account auth0_state.last_login = faker.past_datetime() auth0_state.source = AccountStateSource.USM.value auth0_state.is_active = False pgdb_session.add(auth0_state) pgdb_session.commit() pgdb_session.add(InternalUserDomainFactory.build()) pgdb_session.commit() data = accounts_states_report() assert list(data) == [ [ "Email", "Is Active in Sony USM", "Is Active in Atlas", "Is Active in Auth0", "Last Login", "Comments", ], *sorted( [ [ dna_account.email, dna_state.is_active, True, None, dna_state.last_login, "", ], [ auth0_account.email, auth0_state.is_active, None, True, auth0_state.last_login, "", ], ], key=lambda item: item[0], ), ]