Completed
Push — master ( 6a4ed1...7ae2ee )
by
unknown
44s
created

PartialUpdateFactory   A

Size/Duplication

Total Lines 11
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 11
rs 10
c 1
b 0
f 0
1
# coding: utf8
2
3
"""
4
This software is licensed under the Apache 2 license, quoted below.
5
6
Copyright 2014 Crystalnix Limited
7
8
Licensed under the Apache License, Version 2.0 (the "License"); you may not
9
use this file except in compliance with the License. You may obtain a copy of
10
the License at
11
12
    http://www.apache.org/licenses/LICENSE-2.0
13
14
Unless required by applicable law or agreed to in writing, software
15
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17
License for the specific language governing permissions and limitations under
18
the License.
19
"""
20
21
from datetime import date
22
from uuid import UUID
23
from django.core.files.uploadedfile import SimpleUploadedFile
24
25
import factory
26
27
28
class ApplicationFactory(factory.DjangoModelFactory):
29
    class Meta:
30
        model = 'omaha.Application'
31
32
    id = factory.Sequence(lambda n: '{D0AB2EBC-931B-4013-9FEB-C9C4C2225%s}' % n)
33
    name = factory.Sequence(lambda n: 'chrome%s' % n)
34
35
36
class DataFactory(factory.DjangoModelFactory):
37
    class Meta:
38
        model = 'omaha.Data'
39
40
    app = factory.lazy_attribute(lambda x: ApplicationFactory())
41
    name = 0
42
    index = factory.Sequence(lambda n: 'indext_test%s' % n)
43
    value = factory.Sequence(lambda n: 'test%s' % n)
44
45
46
class PlatformFactory(factory.DjangoModelFactory):
47
    class Meta:
48
        model = 'omaha.Platform'
49
50
    name = factory.Sequence(lambda n: 'p_%s' % n)
51
52
53
class ChannelFactory(factory.DjangoModelFactory):
54
    class Meta:
55
        model = 'omaha.Channel'
56
57
    name = factory.Sequence(lambda n: 'channel%s' % n)
58
59
60
class VersionFactory(factory.DjangoModelFactory):
61
    class Meta:
62
        model = 'omaha.Version'
63
64
    app = factory.lazy_attribute(lambda x: ApplicationFactory())
65
    platform = factory.lazy_attribute(lambda x: PlatformFactory())
66
    channel = factory.lazy_attribute(lambda x: ChannelFactory())
67
    version = '37.0.2062.124'
68
    file = SimpleUploadedFile('./chrome_installer.exe', b' ' * 123)
69
    file_size = 123
70
    file_hash = 'ojan8ermbNHlI5czkED+nc01rxk='
71
72
73
class RequestFactory(factory.DjangoModelFactory):
74
    class Meta:
75
        model = 'omaha.Request'
76
77
    version = "1.0.0.0"
78
    userid = UUID(int=0)
79
80
81
class AppRequestFactory(factory.DjangoModelFactory):
82
    class Meta:
83
        model = 'omaha.AppRequest'
84
85
    request = factory.LazyAttribute(lambda x: RequestFactory())
86
    appid = '{D0AB2EBC-931B-4013-9FEB-C9C4C2225C0}'
87
88
    @factory.post_generation
89
    def events(self, create, extracted, **kwargs):
90
        if not create:
91
            return
92
93
        if extracted:
94
            for event in extracted:
95
                self.events.add(event)
96
97
98
class ActionFactory(factory.DjangoModelFactory):
99
    class Meta:
100
        model = 'omaha.Action'
101
102
    version = factory.lazy_attribute(lambda x: VersionFactory())
103
    event = 1
104
105
106
class EventFactory(factory.DjangoModelFactory):
107
    class Meta:
108
        model = 'omaha.Event'
109
110
    eventtype = 1
111
    eventresult = 1
112
113
114
class PartialUpdateFactory(factory.DjangoModelFactory):
115
    class Meta:
116
        model = 'omaha.PartialUpdate'
117
118
    is_enabled = factory.Sequence(lambda n: True)
119
    version = factory.lazy_attribute(lambda n: VersionFactory())
120
    percent = factory.Sequence(lambda n: 50.0)
121
    start_date = factory.Sequence(lambda n: date.today())
122
    end_date = factory.Sequence(lambda n: date.today())
123
    exclude_new_users = factory.Sequence(lambda n: True)
124
    active_users = factory.Sequence(lambda n: 1)
125