Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 58 additions & 1 deletion blog/tests.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.test import TestCase, Client
from django.test import TestCase, Client, override_settings
from django.core.urlresolvers import reverse
from django.contrib.auth.models import User
from django.conf import settings

from .models import Post

Expand Down Expand Up @@ -32,3 +33,59 @@ def test_invalid_detail(self):
response = self.client.get(
reverse('blog:detail', args=['test-test']))
self.assertEqual(response.status_code, 404)

def test_pagination(self):
for i in range(settings.BLOG['LIMIT'] + 1):
dummy_data = self.dummy_data
dummy_data['slug'] = dummy_data['slug'] + str(i)
Post.objects.create(author=self.user, **dummy_data)
response = self.client.get(reverse('blog:home'))
self.assertContains(response, "Daha fazla")

@override_settings(BLOG={
'TITLE': 'Test Title',
'DESCRIPTION': 'Python istanbul Test DESCRIPTION',
'LIMIT': 5,
'URL': 'http://pyistanbul.org/',
'DISQUS_USERNAME': 'helevele',
'USE_DISQUS': True,
})
def test_blog_title(self):
response = self.client.get(reverse('blog:home'))
self.assertContains(response, "Test Title")

@override_settings(BLOG={
'TITLE': 'Python istanbul',
'DESCRIPTION': 'Python istanbul Test DESCRIPTION',
'LIMIT': 5,
'URL': 'http://pyistanbul.org/',
'DISQUS_USERNAME': 'helevele',
'USE_DISQUS': True,
})
def test_blog_description(self):
response = self.client.get(reverse('blog:home'))
self.assertContains(response, "Python istanbul Test DESCRIPTION")

@override_settings(BLOG={
'TITLE': 'Python istanbul',
'DESCRIPTION': 'ython istanbul Gunlugu',
'LIMIT': 5,
'URL': 'http://pyistanbul.org/',
'DISQUS_USERNAME': 'pyistanbul',
'USE_DISQUS': True,
})
def test_use_disqus(self):
response = self.client.get(self.post.get_absolute_url())
self.assertContains(response, "http://disqus.com")

@override_settings(BLOG={
'TITLE': 'Python istanbul',
'DESCRIPTION': 'Python istanbul Gunlugu',
'LIMIT': 5,
'URL': 'http://pyistanbul.org/',
'DISQUS_USERNAME': 'helevele',
'USE_DISQUS': True,
})
def test_disqus_username(self):
response = self.client.get(self.post.get_absolute_url())
self.assertContains(response, "helevele")
1 change: 1 addition & 0 deletions conf/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ django-markitup==2.2.2
django-nose==1.3
gunicorn==19.3
djangospam==1.1.3
django-allauth==0.19.1
3 changes: 2 additions & 1 deletion people/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.contrib import admin

from .models import Person
from .models import Person, SocialAccountLink


admin.site.register(Person)
admin.site.register(SocialAccountLink)
10 changes: 0 additions & 10 deletions people/forms.py

This file was deleted.

32 changes: 32 additions & 0 deletions people/migrations/0003_auto_20150508_2347.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations
from django.conf import settings


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('people', '0002_auto_20150311_1220'),
]

operations = [
migrations.CreateModel(
name='SocialAccountLink',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('account_type', models.CharField(max_length=10, choices=[(b'twitter', b'Twitter'), (b'home', b'Blog'), (b'github', b'Github')])),
('link', models.URLField(max_length=255)),
('user', models.ForeignKey(related_name='links', to=settings.AUTH_USER_MODEL)),
],
options={
},
bases=(models.Model,),
),
migrations.AlterUniqueTogether(
name='socialaccountlink',
unique_together=set([('account_type', 'user')]),
),
]
23 changes: 23 additions & 0 deletions people/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,26 @@ def __str__(self):
def badge(self):
if codecs.encode(self.email, "rot13") == "uhfrlvanyo@tznvy.pbz":
return "huseyinalbing"


@python_2_unicode_compatible
class SocialAccountLink(models.Model):
TWITTER = 'twitter'
BLOG = 'home'
GITHUB = 'github'

ACCOUNT_TYPE_CHOICES = (
(TWITTER, 'Twitter'),
(BLOG, 'Blog'),
(GITHUB, 'Github')
)
account_type = models.CharField(choices=ACCOUNT_TYPE_CHOICES,
max_length=10)
link = models.URLField(max_length=255)
user = models.ForeignKey('auth.User', related_name='links')

def __str__(self):
return self.get_account_type_display()

class Meta:
unique_together = ('account_type', 'user',)
45 changes: 34 additions & 11 deletions people/tests.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# coding: utf-8
from django.core.urlresolvers import reverse
from django.test import TestCase, Client
from django.contrib.auth.models import User
Expand All @@ -20,17 +21,6 @@ def setUp(self):
self.tester = User.objects.create(username='tester')
self.client = Client()

def test_create(self):
response = self.client.post(reverse('people:new'), self.person)
self.assertRedirects(response, reverse('people:index'))
self.assertTrue(Person.objects.exists())
person = Person.objects.get()
self.assertEqual(person.name, 'edi budu')
self.assertEqual(person.email, 'edi@budu.com')
self.assertEqual(person.blog_link, 'http://edibudu.com/')
self.assertEqual(person.twitter_username, 'edibudu')
self.assertEqual(person.github_username, 'edicat')

def test_listing(self):
Person.objects.create(**self.person)
response = self.client.get(reverse('people:index'))
Expand All @@ -42,3 +32,36 @@ def test_active_listing(self):
Person.objects.create(**person)
response = self.client.get(reverse('people:index'))
self.assertNotContains(response, "edi budu")

def test_people_detail(self):
response = self.client.get(
reverse('people:detail', args=[self.tester.username]))
self.assertEqual(response.status_code, 200)
self.assertContains(response, self.tester.username)

def test_people_detail_passive_user(self):
self.tester.is_active = False
self.tester.save()
response = self.client.get(
reverse('people:detail', args=[self.tester.username]))
self.assertEqual(response.status_code, 404)

def test_people_detail_not_found(self):
response = self.client.get(
reverse('people:detail', args=["test123"]))
self.assertEqual(response.status_code, 404)

def test_people_detail_method_not_allowed(self):
response = self.client.post(
reverse('people:detail', args=[self.tester.username]))
self.assertEqual(response.status_code, 405)

def test_people_detail_password_change_link(self):
self.tester.set_password('123456')
self.tester.save()
self.client.login(username=self.tester.username, password='123456')
response = self.client.get(
reverse('people:detail', args=[self.tester.username]))
self.assertEqual(response.status_code, 200)
self.assertContains(response, self.tester.username)
self.assertContains(response, u"Parola Değiştir")
13 changes: 6 additions & 7 deletions people/urls.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
from django.conf.urls import patterns, include, url
from django.conf.urls import url

from .views import PeopleView, CreatePeopleView
from .views import PeopleListView, PeopleDetailView


urlpatterns = patterns(
'',
url(r'^$', PeopleView.as_view(), name='index'),
url(r'^new$', CreatePeopleView.as_view(), name='new'),
)
urlpatterns = [
url(r'^$', PeopleListView.as_view(), name='index'),
url(r'^(?P<username>[-\w]+)/$', PeopleDetailView.as_view(), name='detail'),
]
27 changes: 9 additions & 18 deletions people/views.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,16 @@
# coding: utf-8
from django.views.generic import ListView, DetailView
from django.contrib.auth.models import User

from django.contrib import messages
from django.core.urlresolvers import reverse
from django.views.generic import ListView, CreateView
from .models import Person

from people.models import Person
from people.forms import PersonForm


class PeopleView(ListView):
class PeopleListView(ListView):
queryset = Person.objects.active()


class CreatePeopleView(CreateView):
model = Person
form_class = PersonForm
success_message = 'Kişi başarıyla eklendi.'

def form_valid(self, form):
messages.success(self.request, self.success_message)
return super(CreatePeopleView, self).form_valid(form)

def get_success_url(self):
return reverse("people:index")
class PeopleDetailView(DetailView):
template_name = "people/person_detail.html"
queryset = User.objects.filter(is_active=True)
slug_field = "username"
slug_url_kwarg = "username"
22 changes: 22 additions & 0 deletions presentations/migrations/0002_presentation_user.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations
from django.conf import settings


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('presentations', '0001_initial'),
]

operations = [
migrations.AddField(
model_name='presentation',
name='user',
field=models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, null=True),
preserve_default=True,
),
]
21 changes: 21 additions & 0 deletions presentations/migrations/0003_auto_20150507_2301.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations
from django.conf import settings


class Migration(migrations.Migration):

dependencies = [
('presentations', '0002_presentation_user'),
]

operations = [
migrations.AlterField(
model_name='presentation',
name='user',
field=models.ForeignKey(related_name='presentations', blank=True, to=settings.AUTH_USER_MODEL, null=True),
preserve_default=True,
),
]
2 changes: 2 additions & 0 deletions presentations/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ class Presentation(models.Model):
date = models.DateField()
link = models.URLField()
description = models.TextField(blank=True)
user = models.ForeignKey('auth.User', null=True, blank=True,
related_name='presentations')

class Meta:
ordering = ['-date']
Expand Down
2 changes: 1 addition & 1 deletion presentations/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from .models import Presentation


class PeopleTest(TestCase):
class PresentationTest(TestCase):

presentation = {
'title': 'foo bar',
Expand Down
Loading