def test_sparkle_critical(self):
        app = ApplicationFactory.create(id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome')
        channel = ChannelFactory.create(name='stable')
        first_version = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.110',
            short_version='13.0.782.110',
            file=SimpleUploadedFile('./chrome1.dmg', b'_' * 23963192),
            file_size=23963192)
        first_version.save()

        first_crit_version = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.111',
            short_version='13.0.782.111',
            is_critical=True,
            file=SimpleUploadedFile('./chrome2.dmg', b'_' * 23963192),
            file_size=23963192)
        first_crit_version.save()

        last_version = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.112',
            short_version='13.0.782.112',
            file=SimpleUploadedFile('./chrome3.dmg', b'_' * 23963192),
            file_size=23963192)
        last_version.save()

        second_crit_version = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.113',
            short_version='13.0.782.113',
            is_critical=True,
            file=SimpleUploadedFile('./chrome4.dmg', b'_' * 23963192),
            file_size=23963192)
        second_crit_version.save()

        response = self.client.get("%s?appVersionShort=13.0.782.110" % reverse('sparkle_appcast', args=(app.name, channel.name)),
                                   HTTP_HOST='example.com')

        self.assertEqual(response.status_code, 200)

        self.assertXmlDocument(response.content)
        self.assertXmlEquivalentOutputs(response.content,
                                        fixtures.first_crit_response_sparkle)

        response = self.client.get("%s?appVersionShort=13.0.782.111" % reverse('sparkle_appcast', args=(app.name, channel.name)),
                                   HTTP_HOST='example.com')

        self.assertEqual(response.status_code, 200)

        self.assertXmlDocument(response.content)
        self.assertXmlEquivalentOutputs(response.content,
                                        fixtures.second_crit_response_sparkle)
Exemple #2
0
    def test_sparkle_critical(self):
        app = ApplicationFactory.create(id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome')
        channel = ChannelFactory.create(name='stable')
        first_version = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.110',
            short_version='13.0.782.110',
            file=SimpleUploadedFile('./chrome1.dmg', b'_' * 23963192),
            file_size=23963192)
        first_version.save()

        first_crit_version = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.111',
            short_version='13.0.782.111',
            is_critical=True,
            file=SimpleUploadedFile('./chrome2.dmg', b'_' * 23963192),
            file_size=23963192)
        first_crit_version.save()

        last_version = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.112',
            short_version='13.0.782.112',
            file=SimpleUploadedFile('./chrome3.dmg', b'_' * 23963192),
            file_size=23963192)
        last_version.save()

        second_crit_version = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.113',
            short_version='13.0.782.113',
            is_critical=True,
            file=SimpleUploadedFile('./chrome4.dmg', b'_' * 23963192),
            file_size=23963192)
        second_crit_version.save()

        response = self.client.get("%s?appVersionShort=13.0.782.110" % reverse('sparkle_appcast', args=(app.name, channel.name)),
                                   HTTP_HOST='example.com')

        self.assertEqual(response.status_code, 200)

        self.assertXmlDocument(response.content)
        self.assertXmlEquivalentOutputs(response.content,
                                        fixtures.first_crit_response_sparkle)

        response = self.client.get("%s?appVersionShort=13.0.782.111" % reverse('sparkle_appcast', args=(app.name, channel.name)),
                                   HTTP_HOST='example.com')

        self.assertEqual(response.status_code, 200)

        self.assertXmlDocument(response.content)
        self.assertXmlEquivalentOutputs(response.content,
                                        fixtures.second_crit_response_sparkle)
 def test_public_sparkle_update(self):
     ChannelFactory._meta.database = 'root'
     channel_name = 'test'
     channel = ChannelFactory(name=channel_name)
     app_name = 'SparrowTestApp'
     ApplicationFactory._meta.database='root'
     app = ApplicationFactory(name=app_name)
     file = SimpleUploadedFile("test.dmg", b"content")
     SparkleVersionFactory._meta.database='root'
     SparkleVersionFactory.create(channel=channel, app=app, file=file)
     url = '%s%s' % (self.live_server_url, reverse('sparkle_appcast', kwargs=dict(app_name=app_name, channel=channel_name)))  # replace by reverse
     resp = requests.get(url)
     root = objectify.fromstring(resp.content)
     self.assertTrue(app_name in str(root.channel.item.title))
    def test_monitoring(self):
        for key in self.cache_keys:
            self.assertEqual(cache.get(key, 0), 0)

        VersionFactory.create(file_size=100)
        SparkleVersionFactory.create(file_size=100)
        Crash.objects.create(archive_size=80, minidump_size=20)
        Symbols.objects.create(file_size=100)
        Feedback.objects.create(screenshot_size=25, blackbox_size=25, attached_file_size=25, system_logs_size=25)

        monitoring_size()

        for key in self.cache_keys:
            self.assertEqual(cache.get(key), 100)
    def test_filter_by_enabled(self):
        version = SparkleVersionFactory.create(
            version='37.0.2062.125',
            file=SimpleUploadedFile('./chrome_installer.exe', False))
        version_disabled = SparkleVersionFactory.create(
            app=version.app,
            channel=version.channel,
            is_enabled=False,
            version='38.0.2062.125',
            file=SimpleUploadedFile('./chrome_installer2.exe', False))

        self.assertEqual(SparkleVersion.objects.all().count(), 2)
        self.assertEqual(SparkleVersion.objects.filter_by_enabled().count(), 1)
        self.assertIn(version, SparkleVersion.objects.filter_by_enabled())
        self.assertNotIn(version_disabled, SparkleVersion.objects.filter_by_enabled())
    def test_sparkle(self):
        app = ApplicationFactory.create(
            id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome')
        channel = ChannelFactory.create(name='stable')
        obj = SparkleVersionFactory.create(app=app,
                                           channel=channel,
                                           version='782.112',
                                           short_version='13.0.782.112',
                                           minimum_system_version='10.14.4',
                                           file=SimpleUploadedFile(
                                               './chrome.dmg',
                                               b'_' * 23963192),
                                           file_size=23963192)
        obj.save()

        response = self.client.get(reverse('sparkle_appcast',
                                           args=(app.name, channel.name)),
                                   HTTP_HOST='example.com')

        self.assertEqual(response.status_code, 200)

        self.assertXmlDocument(response.content)
        self.assertXmlEquivalentOutputs(
            response.content,
            fixtures.response_sparkle_with_minimum_system_version)
 def test_version_upload_to(self):
     version = SparkleVersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', False))
     self.assertEqual(version_upload_to(version, 'chrome_installer.exe'),
                      'sparkle/{}/{}/{}/chrome_installer.exe'.format(
                          version.app.name,
                          version.channel.name,
                          version.version,     #TODO: Uncomment after merge with master
                      ))
 def test_version_upload_to(self):
     version = SparkleVersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', False))
     self.assertEqual(version_upload_to(version, 'chrome_installer.exe'),
                      'sparkle/{}/{}/{}/chrome_installer.exe'.format(
                          version.app.name,
                          version.channel.name,
                          version.version,     #TODO: Uncomment after merge with master
                      ))
    def test_filter_by_enabled(self):
        version = SparkleVersionFactory.create(version='37.0.2062.125',
                                               file=SimpleUploadedFile(
                                                   './chrome_installer.exe',
                                                   False))
        version_disabled = SparkleVersionFactory.create(
            app=version.app,
            channel=version.channel,
            is_enabled=False,
            version='38.0.2062.125',
            file=SimpleUploadedFile('./chrome_installer2.exe', False))

        self.assertEqual(SparkleVersion.objects.all().count(), 2)
        self.assertEqual(SparkleVersion.objects.filter_by_enabled().count(), 1)
        self.assertIn(version, SparkleVersion.objects.filter_by_enabled())
        self.assertNotIn(version_disabled,
                         SparkleVersion.objects.filter_by_enabled())
Exemple #10
0
    def test_monitoring(self):
        for key in self.cache_keys:
            self.assertEqual(cache.get(key, 0), 0)

        VersionFactory.create(file_size=100)
        SparkleVersionFactory.create(file_size=100)
        Crash.objects.create(archive_size=80, minidump_size=20)
        Symbols.objects.create(file_size=100)
        Feedback.objects.create(screenshot_size=25,
                                blackbox_size=25,
                                attached_file_size=25,
                                system_logs_size=25)

        monitoring_size()

        for key in self.cache_keys:
            self.assertEqual(cache.get(key), 100)
Exemple #11
0
 def test_public_sparkle_update(self):
     ChannelFactory._meta.database = 'root'
     channel_name = 'test'
     channel = ChannelFactory(name=channel_name)
     app_name = 'SparrowTestApp'
     ApplicationFactory._meta.database = 'root'
     app = ApplicationFactory(name=app_name)
     file = SimpleUploadedFile("test.dmg", b"content")
     SparkleVersionFactory._meta.database = 'root'
     SparkleVersionFactory.create(channel=channel, app=app, file=file)
     url = '%s%s' % (self.live_server_url,
                     reverse('sparkle_appcast',
                             kwargs=dict(app_name=app_name,
                                         channel=channel_name))
                     )  # replace by reverse
     resp = requests.get(url)
     root = objectify.fromstring(resp.content)
     self.assertTrue(app_name in str(root.channel.item.title))
Exemple #12
0
    def test_auto_fill_file_size(self):
        version = SparkleVersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', b' ' * 10))
        data = dict(
            app=version.app.id,
            channel=version.channel.id,
            version='4.3.2.1',
            release_notes=version.release_notes,
            file=version.file,
        )

        new_version = SparkleVersionSerializer(data=data)
        self.assertTrue(new_version.is_valid())
        new_version_instance = new_version.save()
        self.assertEqual(new_version_instance.file_size, 10)
Exemple #13
0
 def test_serializer(self):
     version = SparkleVersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', False))
     self.assertDictEqual(SparkleVersionSerializer(version).data, dict(
         id=version.id,
         is_enabled=version.is_enabled,
         app=version.app.id,
         channel=version.channel.id,
         version=version.version,
         short_version=version.short_version,
         release_notes=version.release_notes,
         file=version.file.url,
         file_size=version.file_size,
         dsa_signature=version.dsa_signature,
         created=version.created.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
         modified=version.modified.strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
     ))
Exemple #14
0
    def test_sparkle(self):
        app = ApplicationFactory.create(id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C8C}', name='chrome')
        channel = ChannelFactory.create(name='stable')
        obj = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.112',
            short_version='13.0.782.112',
            file=SimpleUploadedFile('./chrome.dmg', b'_' * 23963192),
            file_size=23963192)
        obj.save()

        response = self.client.get(reverse('sparkle_appcast', args=(app.name, channel.name)),
                                   HTTP_HOST='example.com')

        self.assertEqual(response.status_code, 200)

        self.assertXmlDocument(response.content)
        self.assertXmlEquivalentOutputs(response.content,
                                        fixtures.response_sparkle)
Exemple #15
0
    def test_sparkle_with_dsa_signature(self):
        app = ApplicationFactory.create(id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C9C}', name='chrome_dsa')
        channel = ChannelFactory.create(name='stable')
        obj = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.112',
            short_version='13.0.782.112',
            dsa_signature='MCwCFCdoW13VBGJWIfIklKxQVyetgxE7AhQTVuY9uQT0KOV1UEk21epBsGZMPg==',
            file=SimpleUploadedFile('./chrome.dmg', b'_' * 23963192),
            file_size=23963192)
        obj.save()

        response = self.client.get(reverse('sparkle_appcast', args=(app.name, channel.name)),
                                   HTTP_HOST='example.com')

        self.assertEqual(response.status_code, 200)

        self.assertXmlDocument(response.content)
        self.assertXmlEquivalentOutputs(fixtures.response_sparkle_with_dsa,
                                        response.content)
Exemple #16
0
    def test_sparkle_with_dsa_signature(self):
        app = ApplicationFactory.create(id='{D0AB2EBC-931B-4013-9FEB-C9C4C2225C9C}', name='chrome_dsa')
        channel = ChannelFactory.create(name='stable')
        obj = SparkleVersionFactory.create(
            app=app,
            channel=channel,
            version='782.112',
            short_version='13.0.782.112',
            dsa_signature='MCwCFCdoW13VBGJWIfIklKxQVyetgxE7AhQTVuY9uQT0KOV1UEk21epBsGZMPg==',
            file=SimpleUploadedFile('./chrome.dmg', b'_' * 23963192),
            file_size=23963192)
        obj.save()

        response = self.client.get(reverse('sparkle_appcast', args=(app.name, channel.name)),
                                   HTTP_HOST='example.com')

        self.assertEqual(response.status_code, 200)

        self.assertXmlDocument(response.content)
        self.assertXmlEquivalentOutputs(fixtures.response_sparkle_with_dsa,
                                        response.content)
 def test_property(self):
     version = SparkleVersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', ''))
     self.assertEqual(version.size, 123)
 def test_property(self):
     version = SparkleVersionFactory.create(file=SimpleUploadedFile('./chrome_installer.exe', ''))
     self.assertEqual(version.size, 123)