Completed
Branch master (28ef54)
by Fox
01:25
created

PelicanTest.create_triggerservice()   B

Complexity

Conditions 1

Size

Total Lines 28

Duplication

Lines 28
Ratio 100 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
c 2
b 0
f 0
dl 28
loc 28
rs 8.8571
1
# coding: utf-8
2
from django.conf import settings
3
from django_th.models import TriggerService, UserService, ServicesActivated
4
from django_th.tests.test_main import MainTest
5
from th_pelican.models import Pelican
6
from th_pelican.forms import PelicanProviderForm, PelicanConsumerForm
7
from th_pelican.my_pelican import ServicePelican
8
9
10
class PelicanTest(MainTest):
11
12
    """
13
        pelicanTest Model
14
    """
15 View Code Duplication
    def create_triggerservice(self,
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
16
                              date_created="20130610",
17
                              description="My first Service",
18
                              status=True,
19
                              consumer_name="ServicePelican"):
20
        """
21
           create a TriggerService
22
        """
23
        user = self.user
24
25
        service_provider = ServicesActivated.objects.create(
26
            name='ServiceRSS', status=True,
27
            auth_required=False, description='Service RSS')
28
        service_consumer = ServicesActivated.objects.create(
29
            name=consumer_name, status=True,
30
            auth_required=True, description='Service Pelican')
31
        provider = UserService.objects.create(user=user,
32
                                              token="",
33
                                              name=service_provider)
34
        consumer = UserService.objects.create(user=user,
35
                                              token="AZERTY1234",
36
                                              name=service_consumer)
37
        return TriggerService.objects.create(provider=provider,
38
                                             consumer=consumer,
39
                                             user=user,
40
                                             date_created=date_created,
41
                                             description=description,
42
                                             status=status)
43
44
    def create_pelican(self):
45
        """
46
            Create a Pelican object related to the trigger object
47
        """
48
        trigger = self.create_triggerservice()
49
        name = 'pelican'
50
        status = True
51
        return Pelican.objects.create(trigger=trigger,
52
                                      title='My Pelican',
53
                                      url='http://localhost.com',
54
                                      path='/tmp/',
55
                                      name=name,
56
                                      category='News',
57
                                      status=status)
58
59
    def test_pelican(self):
60
        """
61
           Test if the creation of the pelican object looks fine
62
        """
63
        d = self.create_pelican()
64
        self.assertTrue(isinstance(d, Pelican))
65
        self.assertEqual(d.show(), "My Pelican {}".format(d.name))
66
        self.assertEqual(d.__str__(), d.name)
67
68
    """
69
        Form
70
    """
71
    # provider
72
    def test_valid_provider_form(self):
73
        """
74
           test if that form is a valid provider one
75
        """
76
        d = self.create_pelican()
77
        data = {'name': d.name, 'title': 'Foobar WebSite',
78
                'url': 'http://www.google.com', 'tags': 'tag1, tag2',
79
                'category': 'internet', 'path': '/home/triggerhappy/pelican'}
80
        form = PelicanProviderForm(data=data)
81
        self.assertTrue(form.is_valid())
82
83
    def test_invalid_provider_form(self):
84
        """
85
           test if that form is not a valid provider one
86
        """
87
        form = PelicanProviderForm(data={})
88
        self.assertFalse(form.is_valid())
89
90
    # consumer
91
    def test_valid_consumer_form(self):
92
        """
93
           test if that form is a valid consumer one
94
        """
95
        d = self.create_pelican()
96
        data = {'name': d.name, 'title': 'Foobar WebSite',
97
                'url': 'http://www.google.com', 'tags': 'tag1, tag2',
98
                'category': 'internet', 'path': '/home/triggerhappy/pelican'}
99
        form = PelicanConsumerForm(data=data)
100
        self.assertTrue(form.is_valid())
101
102
    def test_invalid_consumer_form(self):
103
        """
104
           test if that form is not a valid consumer one
105
        """
106
        form = PelicanConsumerForm(data={})
107
        self.assertFalse(form.is_valid())
108
109
    def test_get_config_th(self):
110
        self.assertTrue(settings.TH_PELICAN_AUTHOR)
111
112
    def test_get_services_list(self):
113
        th_service = ('th_pelican.my_pelican.ServicePelican',)
114
        for service in th_service:
115
            self.assertIn(service, settings.TH_SERVICES)
116
117
    def test_save_data(self):
118
        pelican = self.create_pelican()
119
        token = 'AZERTY1234'
120
        data = {'title': 'my title', 'category': 'News', 'tags': 'Python'}
121
122
        s = ServicePelican()
123
        r = s.save_data(token, pelican.trigger_id, **data)
124
        self.assertTrue(r, True)
125
126
        pelican.path = '/tmp/foo'
127
        pelican.save()
128
        s = ServicePelican()
129
        r = s.save_data(token, pelican.trigger_id, **data)
130
        self.assertFalse(r, False)
131