def test_company_referral_activity_without_team_and_contact(api_client): """ Get a list of company referrals and test the returned JSON is valid as per: https://www.w3.org/TR/activitystreams-core/ """ recipient = AdviserFactory(dit_team=None) company_referral = CompanyReferralFactory(recipient=recipient, contact=None) response = hawk.get(api_client, get_url('api-v3:activity-stream:company-referrals')) assert response.status_code == status.HTTP_200_OK assert response.json() == { '@context': 'https://www.w3.org/ns/activitystreams', 'summary': 'Company Referral Activities', 'type': 'OrderedCollectionPage', 'id': 'http://testserver/v3/activity-stream/company-referral', 'partOf': 'http://testserver/v3/activity-stream/company-referral', 'previous': None, 'next': None, 'orderedItems': [ { 'id': f'dit:DataHubCompanyReferral:{company_referral.id}:Announce', 'type': 'Announce', 'published': format_date_or_datetime(company_referral.modified_on), 'generator': {'name': 'dit:dataHub', 'type': 'Application'}, 'object': { 'id': f'dit:DataHubCompanyReferral:{company_referral.id}', 'type': ['dit:CompanyReferral'], 'startTime': format_date_or_datetime(company_referral.created_on), 'dit:subject': company_referral.subject, 'dit:status': str(company_referral.status), 'attributedTo': [ { 'id': f'dit:DataHubCompany:{company_referral.company.pk}', 'dit:dunsNumber': company_referral.company.duns_number, 'dit:companiesHouseNumber': company_referral.company.company_number, 'type': ['Organization', 'dit:Company'], 'name': company_referral.company.name, }, { 'id': f'dit:DataHubAdviser:{company_referral.created_by.pk}', 'type': ['Person', 'dit:Adviser'], 'dit:emailAddress': company_referral.created_by.contact_email or company_referral.created_by.email, 'name': company_referral.created_by.name, 'dit:team': { 'id': f'dit:DataHubTeam:{company_referral.created_by.dit_team.pk}', 'type': ['Group', 'dit:Team'], 'name': company_referral.created_by.dit_team.name, }, 'dit:DataHubCompanyReferral:role': 'sender', }, { 'id': f'dit:DataHubAdviser:{company_referral.recipient.pk}', 'type': ['Person', 'dit:Adviser'], 'dit:emailAddress': company_referral.recipient.contact_email or company_referral.recipient.email, 'name': company_referral.recipient.name, 'dit:DataHubCompanyReferral:role': 'recipient', }, ], 'url': company_referral.get_absolute_url(), }, }, ], }
def test_company_referral_activity(api_client): """ Get a list of company referrals and test the returned JSON is valid as per: https://www.w3.org/TR/activitystreams-core/ """ start = datetime.datetime(year=2012, month=7, day=12, hour=15, minute=6, second=3) with freeze_time(start) as frozen_datetime: company_referral = CompanyReferralFactory() frozen_datetime.tick(datetime.timedelta(seconds=1, microseconds=1)) response = hawk.get( api_client, get_url('api-v3:activity-stream:company-referrals')) assert response.status_code == status.HTTP_200_OK assert response.json() == { '@context': 'https://www.w3.org/ns/activitystreams', 'summary': 'Company Referral Activities', 'type': 'OrderedCollectionPage', 'next': 'http://testserver/v3/activity-stream/company-referral' + '?cursor=2012-07-12T15%3A06%3A03.000000%2B00%3A00' + f'&cursor={str(company_referral.id)}', 'orderedItems': [ { 'id': f'dit:DataHubCompanyReferral:{company_referral.id}:Announce', 'type': 'Announce', 'published': format_date_or_datetime(company_referral.modified_on), 'generator': { 'name': 'dit:dataHub', 'type': 'Application' }, 'object': { 'id': f'dit:DataHubCompanyReferral:{company_referral.id}', 'type': ['dit:CompanyReferral'], 'startTime': format_date_or_datetime(company_referral.created_on), 'dit:subject': company_referral.subject, 'dit:status': str(company_referral.status), 'attributedTo': [ { 'id': f'dit:DataHubCompany:{company_referral.company.pk}', 'dit:dunsNumber': company_referral.company.duns_number, 'dit:companiesHouseNumber': company_referral.company.company_number, 'type': ['Organization', 'dit:Company'], 'name': company_referral.company.name, }, { 'id': f'dit:DataHubAdviser:{company_referral.created_by.pk}', 'type': ['Person', 'dit:Adviser'], 'dit:emailAddress': company_referral.created_by.contact_email or company_referral.created_by.email, 'name': company_referral.created_by.name, 'dit:team': { 'id': f'dit:DataHubTeam:{company_referral.created_by.dit_team.pk}', 'type': ['Group', 'dit:Team'], 'name': company_referral.created_by.dit_team.name, }, 'dit:DataHubCompanyReferral:role': 'sender', }, { 'id': f'dit:DataHubAdviser:{company_referral.recipient.pk}', 'type': ['Person', 'dit:Adviser'], 'dit:emailAddress': company_referral.recipient.contact_email or company_referral.recipient.email, 'name': company_referral.recipient.name, 'dit:team': { 'id': f'dit:DataHubTeam:{company_referral.recipient.dit_team.pk}', 'type': ['Group', 'dit:Team'], 'name': company_referral.recipient.dit_team.name, }, 'dit:DataHubCompanyReferral:role': 'recipient', }, { 'id': f'dit:DataHubContact:{company_referral.contact.pk}', 'type': ['Person', 'dit:Contact'], 'url': company_referral.contact.get_absolute_url(), 'dit:emailAddress': company_referral.contact.email, 'dit:jobTitle': company_referral.contact.job_title, 'name': company_referral.contact.name, }, ], 'url': company_referral.get_absolute_url(), }, }, ], }