mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
54 lines
1.2 KiB
Python
54 lines
1.2 KiB
Python
from django.contrib.auth.models import AbstractBaseUser, AnonymousUser, User
|
|
from django.db import models
|
|
from django.test import RequestFactory, TestCase
|
|
|
|
|
|
class StubPasswordBackend:
|
|
"""Stub backend
|
|
|
|
Always authenticates when the password matches self.password
|
|
|
|
"""
|
|
|
|
password = "stub"
|
|
|
|
def authenticate(self, request, username, password):
|
|
if password == self.password:
|
|
return User()
|
|
|
|
|
|
class FooPasswordBackend(StubPasswordBackend):
|
|
password = "foo"
|
|
|
|
|
|
class BaseTestCase(TestCase):
|
|
def setUp(self):
|
|
self.request = self.get("/foo")
|
|
self.request.session = {}
|
|
self.setUser(AnonymousUser())
|
|
|
|
def get(self, *args, **kwargs):
|
|
return RequestFactory().get(*args, **kwargs)
|
|
|
|
def post(self, *args, **kwargs):
|
|
return RequestFactory().post(*args, **kwargs)
|
|
|
|
def setUser(self, user):
|
|
self.user = self.request.user = user
|
|
|
|
def login(self, user_class=User):
|
|
user = user_class()
|
|
self.setUser(user)
|
|
|
|
|
|
class EmailUser(AbstractBaseUser):
|
|
email = models.CharField(max_length=254, unique=True)
|
|
|
|
USERNAME_FIELD = "email"
|
|
|
|
def get_username(self):
|
|
return self.email
|
|
|
|
class Meta:
|
|
app_label = "sudo_tests"
|