Completed
Push — master ( 7648fa...b7eb8c )
by Egor
01:22
created

DownloadsTest.setUp()   B

Complexity

Conditions 1

Size

Total Lines 37

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 37
rs 8.8571
cc 1
1
import json
2
3
from rest_framework.test import APITestCase
4
from django.db import connections
5
6
from omaha.factories import VersionFactory, ApplicationFactory, ChannelFactory
7
from sparkle.factories import SparkleVersionFactory
8
9
10
class DownloadsTest(APITestCase):
11
    maxDiff = None
12
13
    def setUp(self):
14
        self.app = ApplicationFactory(name='TestApp')
15
        self.channel = ChannelFactory(name='alpha')
16
        self.stable_channel = ChannelFactory(name='stable')
17
        self.win_v1 = VersionFactory(version='10.0.0.0', app=self.app, channel=self.channel)
18
        self.win_v2 = VersionFactory(version='42.0.1.0', app=self.app, channel=self.channel)
19
        self.win_stable_v = VersionFactory(version='23.0.0.0', app=self.app, channel=self.stable_channel)
20
        self.win_disabled_v = VersionFactory(version='55.0.2.0', app=self.app, channel=self.channel, is_enabled=False)
21
22
        self.mac_v1 = SparkleVersionFactory(short_version='10.0.0.0', version='0.0',
23
                                            app=self.app, channel=self.channel)
24
        self.mac_v2 = SparkleVersionFactory(short_version='42.0.1.0', version='1.0',
25
                                            app=self.app, channel=self.channel)
26
        self.mac_stable_v = SparkleVersionFactory(short_version='23.0.0.0', version='0.0',
27
                                                  app=self.app, channel=self.stable_channel)
28
        self.mac_disabled_v = SparkleVersionFactory(short_version='55.0.2.0', version='2.0',
29
                                                    app=self.app, channel=self.channel, is_enabled=False)
30
        self.exp_res = {
31
            self.app.name: {
32
                "win": {
33
                    self.channel.name: {
34
                        "url": self.win_v2.file_absolute_url,
35
                        "version": self.win_v2.version
36
                    },
37
                    self.stable_channel.name: {
38
                        "url": self.win_stable_v.file_absolute_url,
39
                        "version": self.win_stable_v.version
40
                    }
41
                },
42
                "mac": {
43
                    self.channel.name: {
44
                        "url": self.mac_v2.file_absolute_url,
45
                        "version": self.mac_v2.short_version
46
                    },
47
                    self.stable_channel.name: {
48
                        "url": self.mac_stable_v.file_absolute_url,
49
                        "version": self.mac_stable_v.short_version
50
                    }
51
                }
52
            }
53
        }
54
55
    def test(self):
56
        if connections['default'].settings_dict['ENGINE'] != 'django.db.backends.postgresql_psycopg2':
57
            self.skipTest('Database should be postgreSQL')
58
        response = self.client.get('/api/downloads', format='json')
59
60
        self.assertEqual(json.loads(json.dumps(response.data)), self.exp_res)
61