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

ServicePocketTest.test_save_data()   B

Complexity

Conditions 3

Size

Total Lines 26

Duplication

Lines 26
Ratio 100 %

Importance

Changes 4
Bugs 0 Features 2
Metric Value
cc 3
c 4
b 0
f 2
dl 26
loc 26
rs 8.8571
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_pocket.models import Pocket
8
from th_pocket.forms import PocketProviderForm, PocketConsumerForm
9
from django_th.tests.test_main import MainTest
10
11
12
class PocketTest(MainTest):
13
14
    """
15
        PocketTest Model
16
    """
17
    def create_pocket(self):
18
        trigger = self.create_triggerservice(consumer_name='ServicePocket')
19
        tag = 'test'
20
        url = 'http://foobar.com/somewhere/in/the/rainbow'
21
        title = 'foobar'
22
        tweet_id = ''
23
        status = True
24
        return Pocket.objects.create(tag=tag, url=url, title=title,
25
                                     tweet_id=tweet_id, trigger=trigger,
26
                                     status=status)
27
28
    def test_pocket(self):
29
        p = self.create_pocket()
30
        self.assertTrue(isinstance(p, Pocket))
31
        self.assertEqual(p.show(), "My Pocket {}".format(p.url))
32
        self.assertEqual(p.__str__(), "{}".format(p.url))
33
34
    def test_get_config_th(self):
35
        """
36
            does this settings exists ?
37
        """
38
        self.assertTrue(settings.TH_POCKET)
39
40
    def test_get_config_th_cache(self):
41
        self.assertIn('th_pocket', settings.CACHES)
42
43
    def test_get_services_list(self):
44
        th_service = ('th_pocket.my_pocket.ServicePocket',)
45
        for service in th_service:
46
            self.assertIn(service, settings.TH_SERVICES)
47
48
    """
49
        Form
50
    """
51
52
    # provider
53
    def test_valid_provider_form(self):
54
        """
55
           test if that form is a valid provider one
56
        """
57
        p = self.create_pocket()
58
        data = {'tag': p.tag}
59
        form = PocketProviderForm(data=data)
60
        self.assertTrue(form.is_valid())
61
        form = PocketProviderForm(data={})
62
        self.assertTrue(form.is_valid())
63
64
    # consumer
65
    def test_valid_consumer_form(self):
66
        """
67
           test if that form is a valid consumer one
68
        """
69
        p = self.create_pocket()
70
        data = {'tag': p.tag}
71
        form = PocketConsumerForm(data=data)
72
        self.assertTrue(form.is_valid())
73
        form = PocketConsumerForm(data={})
74
        self.assertTrue(form.is_valid())
75
76
77
try:
78
    from unittest import mock
79
except ImportError:
80
    import mock
81
82
83
class ServicePocketTest(TestCase):
84
    """
85
       ServicePocketTest
86
    """
87
    def setUp(self):
88
        self.date_triggered = datetime.datetime(2013, 6, 10, 00, 00)
89
        self.data = {'link': 'http://foo.bar/some/thing/else/what/else',
90
                     'title': 'what else'}
91
92
    def test_process_data(self, token='AZERTY123', trigger_id=1):
93
        since = int(
94
            time.mktime(datetime.datetime.timetuple(self.date_triggered)))
95
96
        datas = list()
97
        self.assertTrue(isinstance(self.date_triggered, datetime.datetime))
98
        self.assertTrue(token)
99
        self.assertTrue(isinstance(trigger_id, int))
100
        self.assertTrue(isinstance(since, int))
101
        self.assertTrue(isinstance(datas, list))
102
103
        pocket_instance = mock.Mock()
104
        pocket_instance.method(since=since, state="unread")
105
        pocket_instance.method.assert_called_with(since=since, state="unread")
106
107
        return datas
108
109 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...
110
111
        the_return = False
112
        self.assertTrue(token)
113
        self.assertTrue(isinstance(trigger_id, int))
114
        self.assertIn('link', self.data)
115
        self.assertIn('title', self.data)
116
        self.assertIsNotNone(self.data['link'])
117
        self.assertNotEqual(self.data['title'], '')
118
119
        # from th_pocket.models import Pocket as PocketModel
120
        # trigger = PocketModel.objects.get(trigger_id=trigger_id)
121
        # tags = trigger.tag.lower()
122
        tags = ('test',)
123
124
        title = (self.data['title'] if 'title' in self.data else '')
125
126
        pocket_instance = mock.Mock(return_value=True)
127
        pocket_instance.method(url=self.data['link'], title=title, tags=tags)
128
        pocket_instance.method.assert_called_with(url=self.data['link'],
129
                                                  title=title, tags=tags)
130
131
        if pocket_instance():
132
            the_return = True
133
134
        return the_return
135
136
    def test_get_config_th(self):
137
        """
138
            does this settings exists ?
139
        """
140
        self.assertTrue(settings.TH_POCKET)
141
        self.assertIn('consumer_key', settings.TH_POCKET)
142
143
    def test_get_config_th_cache(self):
144
        self.assertIn('th_pocket', settings.CACHES)
145
146
    def test_auth(self):
147
        pass
148
149
    def test_callback(self):
150
        pass
151
152