Пример #1
0
    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)
Пример #2
0
 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})
Пример #3
0
    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")
Пример #4
0
 def setUp(self):
     self.carrier = carriers_factories.CarrierFactory(
         enseigne="MA PETITE ENTREPRISE", with_editable=True)
Пример #5
0
 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])
Пример #6
0
 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])