Esempio n. 1
0
    def test_site(self):
        """
        Tests expected CourseDailyMetrics behavior for working with a Site
        """
        assert Site.objects.count() == 1

        rec_data = dict(
            site=self.site,
            date_for=datetime.date(2018, 2, 2),
            enrollment_count=11,
            active_learners_today=1,
            average_progress=0.5,
            average_days_to_complete=5,
            num_learners_completed=10
        )
        rec = rec_data.copy()
        rec['course_id'] = 'course-v1:SomeOrg+ABC01+2121'
        obj = CourseDailyMetrics.objects.create(**rec)
        assert obj.site == Site.objects.first()
        rec['course_id'] = 'course-v1:AlphaOrg+ABC01+2121'
        alpha_site = SiteFactory(domain='alpha.example.com', name='Alpha')
        assert Site.objects.count() == 2
        rec['site'] = alpha_site
        obj2 = CourseDailyMetrics.objects.create(**rec)
        assert obj2.site == alpha_site

        # Test cascade delete
        assert CourseDailyMetrics.objects.count() == 2
        alpha_site.delete()
        assert CourseDailyMetrics.objects.count() == 1
        # Verify we deleted the correct metrics object
        assert obj == CourseDailyMetrics.objects.first()
    def test_multiple_sites(self):
        """
        Tests expected SiteDailyMetrics behavior for working with a Site
        """
        assert Site.objects.count() == 1
        default_site = Site.objects.first()
        rec = dict(
            site=Site.objects.first(),
            date_for=datetime.date(2018, 02, 02),
            cumulative_active_user_count=11,
            total_user_count=1,
            course_count=1,
            total_enrollment_count=1
        )
        obj = SiteDailyMetrics.objects.create(**rec)
        assert obj.site == default_site

        alpha_site = SiteFactory(domain='alpha.example.com', name='Alpha')
        assert Site.objects.count() == 2
        rec['site'] = alpha_site
        obj2 = SiteDailyMetrics.objects.create(**rec)
        assert obj2.site == alpha_site

        # Test cascade delete
        assert SiteDailyMetrics.objects.count() == 2
        alpha_site.delete()
        assert SiteDailyMetrics.objects.count() == 1
        # Verify we deleted the correct metrics object
        assert obj == SiteDailyMetrics.objects.first()