mirror of
https://github.com/pretix/pretix.git
synced 2026-08-27 13:24:41 +00:00
Tests, fixes and creating items
This commit is contained in:
+17
-3
@@ -51,10 +51,24 @@ class Versionable(BaseVersionable):
|
||||
earlier_version.version_end_date = forced_version_date
|
||||
earlier_version.save()
|
||||
|
||||
for field in earlier_version._meta.many_to_many:
|
||||
earlier_version.clone_relations_shallow(later_version, field.attname, forced_version_date)
|
||||
|
||||
if hasattr(earlier_version._meta, 'many_to_many_related'):
|
||||
for rel in earlier_version._meta.many_to_many_related:
|
||||
earlier_version.clone_relations_shallow(later_version, rel.via_field_name, forced_version_date)
|
||||
|
||||
later_version.save()
|
||||
|
||||
return later_version
|
||||
|
||||
def clone_relations_shallow(self, clone, manager_field_name, forced_version_date):
|
||||
# Source: the original object, where relations are currently pointing to
|
||||
source = getattr(self, manager_field_name) # returns a VersionedRelatedManager instance
|
||||
# Destination: the clone, where the cloned relations should point to
|
||||
source.through.objects.filter(**{source.source_field.attname: clone.id}).update(**{
|
||||
source.source_field.attname: self.id})
|
||||
|
||||
|
||||
class UserManager(BaseUserManager):
|
||||
"""
|
||||
@@ -156,11 +170,11 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
return self.identifier
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if self.identifier is None:
|
||||
if not self.identifier:
|
||||
if self.event is None:
|
||||
self.identifier = self.email.lower()
|
||||
else:
|
||||
self.identifier = "%s@%d.event.tixl" % (self.username.lower(), self.event.id)
|
||||
self.identifier = "%s@%s.event.tixl" % (self.username.lower(), self.event.id)
|
||||
if not self.pk:
|
||||
self.identifier = self.identifier.lower()
|
||||
super().save(*args, **kwargs)
|
||||
@@ -179,7 +193,7 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
elif not self.givenname and self.familyname:
|
||||
return self.familyname
|
||||
elif self.familyname and self.givenname:
|
||||
return '%(family)s, %(given)s' % {
|
||||
return _('%(family)s, %(given)s') % {
|
||||
'family': self.familyname,
|
||||
'given': self.givenname
|
||||
}
|
||||
|
||||
@@ -38,6 +38,12 @@ class LocaleDeterminationTest(TestCase):
|
||||
language = response['Content-Language']
|
||||
self.assertEqual(language, self.TEST_LOCALE)
|
||||
|
||||
def test_unknown_browser_default(self):
|
||||
c = Client(HTTP_ACCEPT_LANGUAGE='sjn')
|
||||
response = c.get('/control/')
|
||||
language = response['Content-Language']
|
||||
self.assertEqual(language, settings.LANGUAGE_CODE)
|
||||
|
||||
def test_cookie_settings(self):
|
||||
c = Client()
|
||||
cookies = c.cookies
|
||||
|
||||
@@ -3,7 +3,7 @@ from django.utils.timezone import now
|
||||
|
||||
from tixlbase.models import (
|
||||
Event, Organizer, Item, ItemVariation,
|
||||
Property, PropertyValue
|
||||
Property, PropertyValue, User
|
||||
)
|
||||
from tixlbase.types import VariationDict
|
||||
|
||||
@@ -139,3 +139,41 @@ class ItemVariationsTest(TestCase):
|
||||
['L', 'blue'],
|
||||
]))
|
||||
self.assertEqual(num_variations, 1)
|
||||
|
||||
|
||||
class VersionableTestCase(TestCase):
|
||||
|
||||
def test_shallow_cone(self):
|
||||
o = Organizer.objects.create(name='Dummy', slug='dummy')
|
||||
event = Event.objects.create(
|
||||
organizer=o, name='Dummy', slug='dummy',
|
||||
date_from=now(),
|
||||
)
|
||||
old = Item.objects.create(event=event, name='Dummy', default_price=14)
|
||||
prop = Property.objects.create(event=event, name='Size')
|
||||
old.properties.add(prop)
|
||||
new = old.clone_shallow()
|
||||
self.assertIsNone(new.version_end_date)
|
||||
self.assertIsNotNone(old.version_end_date)
|
||||
self.assertEqual(new.properties.count(), 0)
|
||||
self.assertEqual(old.properties.count(), 1)
|
||||
|
||||
|
||||
class UserTestCase(TestCase):
|
||||
|
||||
def test_identifier_local(self):
|
||||
o = Organizer.objects.create(name='Dummy', slug='dummy')
|
||||
event = Event.objects.create(
|
||||
organizer=o, name='Dummy', slug='dummy',
|
||||
date_from=now(),
|
||||
)
|
||||
u = User(event=event, username='tester')
|
||||
u.set_password("test")
|
||||
u.save()
|
||||
self.assertEqual(u.identifier, "%s@%s.event.tixl" % (u.username.lower(), event.id))
|
||||
|
||||
def test_identifier_global(self):
|
||||
u = User(email='test@example.com')
|
||||
u.set_password("test")
|
||||
u.save()
|
||||
self.assertEqual(u.identifier, "test@example.com")
|
||||
|
||||
Reference in New Issue
Block a user