|
|
@@ -0,0 +1,47 @@ |
|
|
|
from django.test import TestCase |
|
|
|
|
|
|
|
import mock |
|
|
|
|
|
|
|
from .auth.backends import CombinedAuthBackend |
|
|
|
from ..core.models import Image, Pin |
|
|
|
from .models import User |
|
|
|
|
|
|
|
|
|
|
|
def mock_urlopen(url): |
|
|
|
return open('screenshot.png') |
|
|
|
|
|
|
|
|
|
|
|
class CombinedAuthBackendTest(TestCase): |
|
|
|
def setUp(self): |
|
|
|
self.backend = CombinedAuthBackend() |
|
|
|
self.username = 'jdoe' |
|
|
|
self.email = 'jdoe@example.com' |
|
|
|
self.password = 'password' |
|
|
|
User.objects.create_user(username=self.username, email=self.email, password=self.password) |
|
|
|
|
|
|
|
def test_authenticate_username(self): |
|
|
|
self.assertTrue(self.backend.authenticate(username=self.username, password=self.password)) |
|
|
|
|
|
|
|
def test_authenticate_email(self): |
|
|
|
self.assertTrue(self.backend.authenticate(username=self.email, password=self.password)) |
|
|
|
|
|
|
|
def test_authenticate_wrong_password(self): |
|
|
|
self.assertIsNone(self.backend.authenticate(username=self.username, password='wrong-password')) |
|
|
|
|
|
|
|
def test_authenticate_unknown_user(self): |
|
|
|
self.assertIsNone(self.backend.authenticate(username='wrong-username', password='wrong-password')) |
|
|
|
|
|
|
|
@mock.patch('urllib2.urlopen', mock_urlopen) |
|
|
|
def test_has_perm_on_pin(self): |
|
|
|
image = Image.objects.create_for_url('http://testserver/mocked/screenshot.png') |
|
|
|
user = User.objects.get(pk=1) |
|
|
|
pin = Pin.objects.create(submitter=user, image=image) |
|
|
|
self.assertTrue(self.backend.has_perm(user, 'add_pin', pin)) |
|
|
|
|
|
|
|
@mock.patch('urllib2.urlopen', mock_urlopen) |
|
|
|
def test_has_perm_on_pin_unauthorized(self): |
|
|
|
image = Image.objects.create_for_url('http://testserver/mocked/screenshot.png') |
|
|
|
user = User.objects.get(pk=1) |
|
|
|
other_user = User.objects.create_user('test', 'test@example.com', 'test') |
|
|
|
pin = Pin.objects.create(submitter=user, image=image) |
|
|
|
self.assertFalse(self.backend.has_perm(other_user, 'add_pin', pin)) |