Esempio n. 1
0
    def test_track_detail_app_removed_tracker(self):
        tracker1 = Tracker.objects.create(
            id=1,
            name='Teemo',
        )
        application_handle1 = "com.handle.one"
        report1 = Report.objects.create()
        report1.found_trackers.set([tracker1.id])
        Application.objects.create(handle=application_handle1, report=report1)

        report2 = Report.objects.create()
        # Removing trackers in the version of the app
        report2.found_trackers.set([])
        Application.objects.create(handle=application_handle1, report=report2)
        calculate_trackers_statistics()

        c = Client()
        url = self.TRACKER_DETAIL_PATH.format(tracker1.id)
        response = c.get(url)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.context['tracker'].id, tracker1.id)
        self.assertEqual(len(response.context['reports']), 1)
        self.assertEqual(response.context['reports'][0].application.handle,
                         application_handle1)
        self.assertEqual(response.context['reports'][0], report1)
Esempio n. 2
0
    def test_track_detail_app_multiple_reports(self):
        tracker2 = Tracker.objects.create(
            id=2,
            name='Exodus Super Tracker',
        )
        application_handle2 = "com.handle.two"
        report2 = Report.objects.create()
        report2.found_trackers.set([tracker2.id])
        Application.objects.create(handle=application_handle2, report=report2)
        report3 = Report.objects.create()
        report3.found_trackers.set([tracker2.id])
        Application.objects.create(handle=application_handle2, report=report3)
        calculate_trackers_statistics()

        c = Client()
        url = self.TRACKER_DETAIL_PATH.format(tracker2.id)
        response = c.get(url)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.context['tracker'].id, tracker2.id)
        self.assertEqual(len(response.context['reports']), 2)
        self.assertEqual(response.context['reports'][0].application.handle,
                         application_handle2)
        self.assertEqual(response.context['reports'][0], report3)
        self.assertEqual(response.context['reports'][1].application.handle,
                         application_handle2)
        self.assertEqual(response.context['reports'][1], report2)
Esempio n. 3
0
    def test_should_return_stats_with_1_tracker_not_found(self):
        tracker = Tracker.objects.create(name='Teemo')
        report = Report.objects.create()
        Application.objects.create(handle="apple_sauce",
                                   source="google",
                                   report=report)
        calculate_trackers_statistics()

        c = Client()
        response = c.get(self.STATS_PATH)

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, tracker.name, 1)
        self.assertEqual(response.context['trackers'][0].name, tracker.name)
        self.assertEqual(response.context['trackers'][0].apps_number, 0)
        self.assertEqual(response.context['trackers'][0].apps_percent, 0)
Esempio n. 4
0
    def test_should_return_stats_with_multiple_reports_multiple_application(
            self):
        tracker1 = Tracker.objects.create(
            id=1,
            name='Teemo',
        )
        tracker2 = Tracker.objects.create(
            id=2,
            name='Exodus Super Tracker',
        )
        application_handle1 = "com.handle.one"
        application_handle2 = "com.handle.two"
        report1 = Report.objects.create()
        report1.found_trackers.set([tracker2.id])
        Application.objects.create(handle=application_handle1,
                                   source="google",
                                   report=report1)
        report2 = Report.objects.create()
        report2.found_trackers.set([])
        Application.objects.create(handle=application_handle2,
                                   source="google",
                                   report=report2)
        report3 = Report.objects.create()
        report3.found_trackers.set([tracker1.id, tracker2.id])
        Application.objects.create(handle=application_handle2,
                                   source="google",
                                   report=report3)
        calculate_trackers_statistics()

        c = Client()
        response = c.get(self.STATS_PATH)

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, tracker1.name, 1)
        self.assertContains(response, tracker2.name, 1)
        self.assertEqual(response.context['trackers'][0].name, tracker2.name)
        # Only recent for an application is considered
        self.assertEqual(response.context['trackers'][0].apps_number, 2)
        self.assertEqual(response.context['trackers'][0].apps_percent, 100)
        self.assertEqual(response.context['trackers'][1].name, tracker1.name)
        self.assertEqual(response.context['trackers'][1].apps_number, 1)
        self.assertEqual(response.context['trackers'][1].apps_percent, 50)
Esempio n. 5
0
    def test_should_not_include_more_than_X_trackers(self):
        tracker_limit = 21
        for x in range(0, tracker_limit):
            Tracker.objects.create(name='Tracker{}.'.format(x))

        extra_tracker = Tracker.objects.create(name='Exodus Super Tracker')

        first_trackers = Tracker.objects.exclude(name=extra_tracker.name)

        report = Report.objects.create()
        Application.objects.create(handle="apple_sauce",
                                   source="google",
                                   report=report)
        report.found_trackers.set([t.id for t in first_trackers])
        calculate_trackers_statistics()

        c = Client()
        response = c.get(self.STATS_PATH)

        self.assertEqual(response.status_code, 200)
        self.assertNotContains(response, extra_tracker.name)
        for t in first_trackers:
            self.assertContains(response, t.name, 1)