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

ServiceReadabilityTest.test_process_data()   B

Complexity

Conditions 1

Size

Total Lines 24

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 24
rs 8.9713
1
# coding: utf-8
2
import datetime
3
import time
4
5
from django.test import TestCase
6
from django.conf import settings
7
from th_readability.models import Readability
8
from th_readability.forms import ReadabilityProviderForm, ReadabilityConsumerForm
9
from django_th.tests.test_main import MainTest
10
11
12 View Code Duplication
class ReadabilityTest(MainTest):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
13
14
    """
15
        ReadabilityTest Model
16
    """
17
    def create_readability(self):
18
        trigger = self.create_triggerservice(
19
            consumer_name='ServiceReadability')
20
        name = 'test'
21
        tag = 'test tag'
22
        status = True
23
        return Readability.objects.create(name=name,
24
                                          tag=tag,
25
                                          trigger=trigger,
26
                                          status=status)
27
28
    def test_readability(self):
29
        r = self.create_readability()
30
        self.assertTrue(isinstance(r, Readability))
31
        self.assertEqual(r.show(), "My Readability {}".format(r.name))
32
        self.assertEqual(r.__str__(), r.name)
33
34
    def test_get_config_th(self):
35
        """
36
            does this settings exists ?
37
        """
38
        self.assertTrue(settings.TH_READABILITY)
39
40
    def test_get_config_th_cache(self):
41
        self.assertIn('th_readability', settings.CACHES)
42
43
    def test_get_services_list(self):
44
        th_service = ('th_readability.my_readability.ServiceReadability',)
45
        for service in th_service:
46
            self.assertIn(service, settings.TH_SERVICES)
47
48
    # provider
49
    def test_valid_provider_form(self):
50
        """
51
           test if that form is a valid provider one
52
        """
53
        p = self.create_readability()
54
        data = {'tag': p.tag}
55
        form = ReadabilityProviderForm(data=data)
56
        self.assertTrue(form.is_valid())
57
        form = ReadabilityProviderForm(data={})
58
        self.assertTrue(form.is_valid())
59
60
    # consumer
61
    def test_valid_consumer_form(self):
62
        """
63
           test if that form is a valid consumer one
64
        """
65
        p = self.create_readability()
66
        data = {'tag': p.tag}
67
        form = ReadabilityConsumerForm(data=data)
68
        self.assertTrue(form.is_valid())
69
        form = ReadabilityConsumerForm(data={})
70
        self.assertTrue(form.is_valid())
71
72
try:
73
    from unittest import mock
74
except ImportError:
75
    import mock
76
77
78
class ServiceReadabilityTest(TestCase):
79
    """
80
       ServiceReadabilityTest
81
    """
82
    def setUp(self):
83
        self.date_triggered = datetime.datetime(2013, 6, 10, 00, 00)
84
        self.data = {'link': 'http://foo.bar/some/thing/else/what/else',
85
                     'title': 'what else'}
86
        self.consumer_key = settings.TH_READABILITY['consumer_key']
87
        self.consumer_secret = settings.TH_READABILITY['consumer_secret']
88
89
    def test_get_config_th(self):
90
        """
91
            does this settings exists ?
92
        """
93
        self.assertTrue(settings.TH_READABILITY)
94
        self.assertIn('consumer_key', settings.TH_READABILITY)
95
        self.assertIn('consumer_secret', settings.TH_READABILITY)
96
97
    def test_get_config_th_cache(self):
98
        self.assertIn('th_readability', settings.CACHES)
99
100
    def test_process_data(self, token='AZERTY123#TH#AZERTY123', trigger_id=1):
101
        since = int(
102
            time.mktime(datetime.datetime.timetuple(self.date_triggered)))
103
        self.assertIn('#TH#', token)
104
        token_key, token_secret = token.split('#TH#')
105
106
        datas = list()
107
        self.assertTrue(isinstance(self.date_triggered, datetime.datetime))
108
        self.assertTrue(token)
109
        self.assertTrue(isinstance(trigger_id, int))
110
        self.assertTrue(isinstance(since, int))
111
        self.assertTrue(isinstance(datas, list))
112
113
        client = mock.Mock()
114
        client.method(consumer_key=self.consumer_key,
115
                      consumer_secret=self.consumer_secret,
116
                      token_key=token_key,
117
                      token_secret=token_secret)
118
        client.method.assert_called_with(consumer_key=self.consumer_key,
119
                                         consumer_secret=self.consumer_secret,
120
                                         token_key=token_key,
121
                                         token_secret=token_secret)
122
123
        return datas
124
125 View Code Duplication
    def test_save_data(self, token='AZERTY123', trigger_id=1):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
126
127
        the_return = False
128
        self.assertTrue(token)
129
        self.assertTrue(isinstance(trigger_id, int))
130
        self.assertIn('link', self.data)
131
        self.assertIn('title', self.data)
132
        self.assertIsNotNone(self.data['link'])
133
        self.assertNotEqual(self.data['title'], '')
134
135
        tags = ('test',)
136
        title = (self.data['title'] if 'title' in self.data else '')
137
138
        readability_instance = mock.Mock(return_value=True)
139
        readability_instance.method(url=self.data['link'], title=title, tags=tags)
140
        readability_instance.method.assert_called_with(url=self.data['link'],
141
                                                  title=title, tags=tags)
142
143
        if readability_instance ():
144
            the_return = True
145
146
        return the_return
147
148
    def test_auth(self):
149
        pass
150
151
    def test_callback(self):
152
        pass
153