def test_stats(self): NB_MONTHS = 6 # One carrier not confirmed carriers_factories.CarrierFactory(with_editable=True) # 3 carriers confirmed over the n previous month now = timezone.now() paris_tz = pytz.timezone("Europe/Paris") first_day_of_current_month = paris_tz.localize( datetime.datetime(year=now.year, month=now.month, day=1)) # First day of the period start = first_day_of_current_month - datedelta.datedelta( months=NB_MONTHS - 1) for _ in range(3): # Use 30 days by month to stay within the period confirmed_at = start + datetime.timedelta( days=random.randint(1, NB_MONTHS * 30)) carriers_factories.CarrierFactory( with_editable={"confirmed_at": confirmed_at}) # One carrier validated outside of the range of stats carriers_factories.CarrierFactory( with_editable={ "confirmed_at": start - datetime.timedelta(days=42) }) # Two certificates with only one confirmed carriers = carriers_models.Carrier.objects.all()[:2] carriers_factories.CarrierCertificateFactory(carrier=carriers[0], confirmed_at=None) carriers_factories.CarrierCertificateFactory(carrier=carriers[1]) http_authorization = self.log_in() response = self.client.get( self.url, content_type="application/json", HTTP_AUTHORIZATION=http_authorization, ) self.assertEqual(response.status_code, 200) stats = response.json() # Total (outside last n months included) self.assertEqual(stats["modified_carriers"], 4) self.assertEqual(stats["certificates"], 1) # 6 months modified_carriers_per_month = stats["modified_carriers_per_month"] self.assertEqual(len(modified_carriers_per_month), NB_MONTHS) self.assertEqual( sum([item["count"] for item in modified_carriers_per_month]), 3)
def setUp(self): super().setUp() self.carrier = carriers_factories.CarrierFactory( enseigne="MA PETITE ENTREPRISE", with_editable=True) self.http_authorization = self.log_in() self.carrier_detail_url = reverse( "carriers_detail", kwargs={"carrier_siret": self.carrier.siret})
def test_profile(self): carrier = carriers_factories.CarrierFactory( with_editable={"created_by": self.user, "confirmed_at": timezone.now()} ) carriers_factories.CarrierUserFactory(carrier=carrier, user=self.user) # Add one waiting confirmation for each model carriers_factories.CarrierEditableFactory( carrier=carrier, created_by=self.user, confirmed_at=None ) carriers_factories.CarrierCertificateFactory( carrier=carrier, created_by=self.user, confirmed_at=None ) carriers_factories.CarrierLicenseRenewalFactory( carrier=carrier, created_by=self.user, confirmed_at=None ) http_authorization = self.log_in() response = self.client.get(self.url, HTTP_AUTHORIZATION=http_authorization) self.assertEqual(response.status_code, 200) data = response.json() # For last log in self.user.refresh_from_db() self.assertEqual( json.dumps(self.user.last_login, cls=DjangoJSONEncoder).strip('"'), data["user"]["last_login"], ) self.assertEqual(self.user.provider, data["user"]["provider"]) self.assertTrue(data["user"]["has_accepted_cgu"]) self.assertTrue(data["user"]["is_staff"]) self.assertNotIn("carriers", data["user"]) url_extended = reverse("accounts_profile_extended") response = self.client.get(url_extended, HTTP_AUTHORIZATION=http_authorization) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual(carrier.siret, data["user"]["carriers"][0]["siret"]) confirmations = data["user"]["confirmations"] self.assertEqual(len(confirmations), 3) self.assertEqual(confirmations[0]["type"], "CARRIER_EDITABLE") self.assertEqual(confirmations[1]["type"], "CARRIER_CERTIFICATE") self.assertEqual(confirmations[2]["type"], "CARRIER_LICENSE_RENEWAL")
def setUp(self): self.carrier = carriers_factories.CarrierFactory( enseigne="MA PETITE ENTREPRISE", with_editable=True)
def test_mail_to_carrier_preproduction(self): carrier = carriers_factories.CarrierFactory(with_editable=True) mail_sent = self.mail_carrier_editable_to_confirm(carrier.editable) self.assertEqual(mail_sent.recipients(), [email for (name, email) in settings.MANAGERS])
def test_mail_to_carrier(self): carrier = carriers_factories.CarrierFactory(with_editable=True) mail_sent = self.mail_carrier_editable_to_confirm(carrier.editable) self.assertEqual(mail_sent.recipients(), [carrier.editable.email])