def test_investment_project_syncs_when_adviser_changes(opensearch_with_signals, field): """ Tests that when an adviser is updated, investment projects related to that adviser are resynced. """ adviser = AdviserFactory() project = InvestmentProjectFactory(**{field: adviser}) adviser.dit_team = TeamFactory() adviser.save() opensearch_with_signals.indices.refresh() result = search_investment_project_by_id(project.pk) assert result.hits.total.value == 1 assert result.hits[0][field]['dit_team']['id'] == str(adviser.dit_team.id) assert result.hits[0][field]['dit_team']['name'] == adviser.dit_team.name
def test_team_country_dont_change_after_creation(self): """ Tests that after creating an OrderAssignee, the `team` and `country` properties don't change with further updates. """ team_france = TeamFactory(country_id=constants.Country.france.value.id) adviser = AdviserFactory(dit_team=team_france) assignee = OrderAssigneeFactory(adviser=adviser) # the adviser moves to another team adviser.dit_team = TeamFactory( country_id=constants.Country.italy.value.id) adviser.save() assignee.estimated_time = 1000 assignee.save() assignee.refresh_from_db() # the assignee is still linking to the original team and country assert assignee.team == team_france assert str(assignee.country_id) == constants.Country.france.value.id
def test_investment_project_syncs_when_adviser_changes(es_with_signals, field): """ Tests that when an adviser is updated, investment projects related to that adviser are resynced. """ adviser = AdviserFactory() project = InvestmentProjectFactory(**{field: adviser}) adviser.dit_team = TeamFactory() adviser.save() es_with_signals.indices.refresh() result = get_search_by_entity_query( InvestmentProject, term='', filter_data={'id': project.pk}, ).execute() assert result.hits.total == 1 assert result.hits[0][field]['dit_team']['id'] == str(adviser.dit_team.id) assert result.hits[0][field]['dit_team']['name'] == adviser.dit_team.name