Add twitter timeline update view tests
This commit is contained in:
parent
3e3af4ce95
commit
0411d76596
3 changed files with 79 additions and 1 deletions
|
|
@ -14,6 +14,7 @@ class TwitterTimelineForm(CollectionRuleForm):
|
||||||
max_length=255,
|
max_length=255,
|
||||||
label=_("Twitter profile name"),
|
label=_("Twitter profile name"),
|
||||||
help_text=_("Profile name without hashtags"),
|
help_text=_("Profile name without hashtags"),
|
||||||
|
required=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
def save(self, commit=True):
|
def save(self, commit=True):
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
|
|
@ -5,8 +6,10 @@ import pytz
|
||||||
|
|
||||||
from newsreader.news.collection.choices import RuleTypeChoices
|
from newsreader.news.collection.choices import RuleTypeChoices
|
||||||
from newsreader.news.collection.models import CollectionRule
|
from newsreader.news.collection.models import CollectionRule
|
||||||
|
from newsreader.news.collection.tests.factories import TwitterTimelineFactory
|
||||||
from newsreader.news.collection.tests.views.base import CollectionRuleViewTestCase
|
from newsreader.news.collection.tests.views.base import CollectionRuleViewTestCase
|
||||||
from newsreader.news.collection.twitter import TWITTER_URL
|
from newsreader.news.collection.twitter import TWITTER_URL
|
||||||
|
from newsreader.news.core.tests.factories import CategoryFactory
|
||||||
|
|
||||||
|
|
||||||
class TwitterTimelineCreateViewTestCase(CollectionRuleViewTestCase, TestCase):
|
class TwitterTimelineCreateViewTestCase(CollectionRuleViewTestCase, TestCase):
|
||||||
|
|
@ -34,3 +37,78 @@ class TwitterTimelineCreateViewTestCase(CollectionRuleViewTestCase, TestCase):
|
||||||
self.assertEquals(rule.favicon, None)
|
self.assertEquals(rule.favicon, None)
|
||||||
self.assertEquals(rule.category.pk, self.category.pk)
|
self.assertEquals(rule.category.pk, self.category.pk)
|
||||||
self.assertEquals(rule.user.pk, self.user.pk)
|
self.assertEquals(rule.user.pk, self.user.pk)
|
||||||
|
|
||||||
|
|
||||||
|
class TwitterTimelineUpdateViewTestCase(CollectionRuleViewTestCase, TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
super().setUp()
|
||||||
|
|
||||||
|
self.rule = TwitterTimelineFactory(
|
||||||
|
name="Star citizen",
|
||||||
|
screen_name="RobertsSpaceInd",
|
||||||
|
user=self.user,
|
||||||
|
category=self.category,
|
||||||
|
type=RuleTypeChoices.twitter_timeline,
|
||||||
|
)
|
||||||
|
self.url = reverse(
|
||||||
|
"news:collection:twitter-timeline-update", kwargs={"pk": self.rule.pk}
|
||||||
|
)
|
||||||
|
|
||||||
|
self.form_data = {
|
||||||
|
"name": self.rule.name,
|
||||||
|
"screen_name": self.rule.screen_name,
|
||||||
|
"category": str(self.category.pk),
|
||||||
|
"timezone": pytz.utc,
|
||||||
|
}
|
||||||
|
|
||||||
|
def test_name_change(self):
|
||||||
|
self.form_data.update(name="Star citizen Twitter")
|
||||||
|
|
||||||
|
response = self.client.post(self.url, self.form_data)
|
||||||
|
self.assertEquals(response.status_code, 302)
|
||||||
|
|
||||||
|
self.rule.refresh_from_db()
|
||||||
|
|
||||||
|
self.assertEquals(self.rule.name, "Star citizen Twitter")
|
||||||
|
|
||||||
|
def test_category_change(self):
|
||||||
|
new_category = CategoryFactory(user=self.user)
|
||||||
|
|
||||||
|
self.form_data.update(category=new_category.pk)
|
||||||
|
|
||||||
|
response = self.client.post(self.url, self.form_data)
|
||||||
|
self.assertEquals(response.status_code, 302)
|
||||||
|
|
||||||
|
self.rule.refresh_from_db()
|
||||||
|
|
||||||
|
self.assertEquals(self.rule.category.pk, new_category.pk)
|
||||||
|
|
||||||
|
def test_twitter_timelines_only(self):
|
||||||
|
rule = TwitterTimelineFactory(
|
||||||
|
name="Fake twitter",
|
||||||
|
user=self.user,
|
||||||
|
category=self.category,
|
||||||
|
type=RuleTypeChoices.feed,
|
||||||
|
url="https://twitter.com/RobertsSpaceInd",
|
||||||
|
)
|
||||||
|
url = reverse("news:collection:twitter-timeline-update", kwargs={"pk": rule.pk})
|
||||||
|
|
||||||
|
response = self.client.get(url)
|
||||||
|
|
||||||
|
self.assertEquals(response.status_code, 404)
|
||||||
|
|
||||||
|
def test_screen_name_change(self):
|
||||||
|
self.form_data.update(screen_name="CyberpunkGame")
|
||||||
|
|
||||||
|
response = self.client.post(self.url, self.form_data)
|
||||||
|
|
||||||
|
self.assertEquals(response.status_code, 302)
|
||||||
|
|
||||||
|
self.rule.refresh_from_db()
|
||||||
|
|
||||||
|
self.assertEquals(self.rule.type, RuleTypeChoices.twitter_timeline)
|
||||||
|
self.assertEquals(self.rule.url, f"{TWITTER_URL}/CyberpunkGame")
|
||||||
|
self.assertEquals(self.rule.timezone, str(pytz.utc))
|
||||||
|
self.assertEquals(self.rule.favicon, None)
|
||||||
|
self.assertEquals(self.rule.category.pk, self.category.pk)
|
||||||
|
self.assertEquals(self.rule.user.pk, self.user.pk)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@ class TwitterTimelineCreateView(
|
||||||
template_name = "news/collection/views/twitter/timeline-create.html"
|
template_name = "news/collection/views/twitter/timeline-create.html"
|
||||||
|
|
||||||
|
|
||||||
# TODO add tests
|
|
||||||
class TwitterTimelineUpdateView(
|
class TwitterTimelineUpdateView(
|
||||||
CollectionRuleViewMixin, CollectionRuleDetailMixin, UpdateView
|
CollectionRuleViewMixin, CollectionRuleDetailMixin, UpdateView
|
||||||
):
|
):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue