Rewrite a test to use pytest syntax
This commit is contained in:
parent
9d50db59f6
commit
8938ec79cf
|
|
@ -0,0 +1,6 @@
|
|||
# import pytest
|
||||
#
|
||||
#
|
||||
# @pytest.fixture(scope="session")
|
||||
# def prefix():
|
||||
# return "Meine Klasse"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import re
|
||||
|
||||
regex = re.compile('^<(?P<name>.*)>\s*(?P<email>.*@.*)')
|
||||
regex = re.compile(r"^<(?P<name>.*)>\s*(?P<email>.*@.*)")
|
||||
|
||||
|
||||
def parse_emails(emails):
|
||||
|
|
@ -15,7 +15,7 @@ def parse_emails(emails):
|
|||
return []
|
||||
|
||||
email_tuples = []
|
||||
for email in emails.split(','):
|
||||
for email in emails.split(","):
|
||||
r = regex.match(email.strip())
|
||||
if r:
|
||||
email_tuples.append(r.groups())
|
||||
|
|
@ -37,8 +37,8 @@ def bool_value(value, default=False):
|
|||
if not value:
|
||||
return default
|
||||
|
||||
true_values = ('yes', 'y', 'true', '1')
|
||||
false_values = ('no', 'n', 'false', '0', '')
|
||||
true_values = ("yes", "y", "true", "1")
|
||||
false_values = ("no", "n", "false", "0", "")
|
||||
normalized_value = value.strip().lower()
|
||||
if normalized_value in true_values:
|
||||
return True
|
||||
|
|
|
|||
|
|
@ -24,31 +24,32 @@ def validate_old_password(old_password, username):
|
|||
if user.check_password(old_password):
|
||||
return old_password
|
||||
else:
|
||||
raise serializers.ValidationError(_(u'Das eingegebene Passwort ist falsch'))
|
||||
raise serializers.ValidationError(_("Das eingegebene Passwort ist falsch"))
|
||||
|
||||
|
||||
def validate_old_new_password(value):
|
||||
if value.get('old_password') == '' and value.get('new_password') == '':
|
||||
if value.get("old_password") == "" and value.get("new_password") == "":
|
||||
return value
|
||||
elif value.get('old_password') == '' and value.get('new_password') != '':
|
||||
raise serializers.ValidationError(_(u'Das neue Passwort muss gesetzt werden'))
|
||||
elif value.get('old_password') != '' and value.get('new_password') == '':
|
||||
raise serializers.ValidationError(_(u'Das alte Passwort muss angegeben werden'))
|
||||
elif value.get("old_password") == "" and value.get("new_password") != "":
|
||||
raise serializers.ValidationError(_("Das neue Passwort muss gesetzt werden"))
|
||||
elif value.get("old_password") != "" and value.get("new_password") == "":
|
||||
raise serializers.ValidationError(_("Das alte Passwort muss angegeben werden"))
|
||||
|
||||
return value
|
||||
|
||||
|
||||
def validate_strong_password(password):
|
||||
|
||||
has_number = re.search('\d', password)
|
||||
has_upper = re.search('[A-Z]', password)
|
||||
has_lower = re.search('[a-z]', password)
|
||||
has_special = re.search('[!@#$%^&*(),.?":{}|<>\+]', password)
|
||||
has_number = re.search(r"\d", password)
|
||||
has_upper = re.search(r"[A-Z]", password)
|
||||
has_lower = re.search(r"[a-z]", password)
|
||||
has_special = re.search(r'[!@#$%^&*(),.?":{}|<>\+]', password)
|
||||
|
||||
if has_number and has_upper and has_lower and has_special:
|
||||
return password
|
||||
else:
|
||||
raise serializers.ValidationError(_(u'Das Passwort muss Grossbuchstaben, Zahlen und Sonderzeichen beinhalten'))
|
||||
raise serializers.ValidationError(
|
||||
_("Das Passwort muss Grossbuchstaben, Zahlen und Sonderzeichen beinhalten")
|
||||
)
|
||||
|
||||
|
||||
class PasswordSerialzer(serializers.Serializer):
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import pytest
|
||||
from django.db import transaction
|
||||
from django.test import TestCase
|
||||
from graphene import Context
|
||||
|
|
@ -11,57 +12,61 @@ from core.tests.base_test import SkillboxTestCase
|
|||
from users.models import SchoolClass, User
|
||||
from users.services import create_users
|
||||
|
||||
UPDATE_SCHOOL_CLASS_MUTATION = get_graphql_mutation('updateSchoolClass.gql')
|
||||
UPDATE_SCHOOL_CLASS_MUTATION = get_graphql_mutation("updateSchoolClass.gql")
|
||||
|
||||
|
||||
class SchoolClassesTest(TestCase):
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
def setUp(self):
|
||||
self.prefix = 'Meine Klasse'
|
||||
|
||||
def test_default_class_name_initial(self):
|
||||
# @pytest.fixture
|
||||
# def prefix():
|
||||
# return "Meine Klasse"
|
||||
|
||||
|
||||
def test_default_class_name_initial(prefix):
|
||||
class_name = SchoolClass.generate_default_group_name()
|
||||
self.assertEqual('{} 1'.format(self.prefix), class_name)
|
||||
assert "{} 1".format(prefix) == class_name
|
||||
|
||||
def test_default_class_name_initial_with_similar_existing(self):
|
||||
SchoolClass.objects.create(name='{} abc212'.format(self.prefix))
|
||||
|
||||
def test_default_class_name_initial_with_similar_existing(prefix):
|
||||
SchoolClass.objects.create(name="{} abc212".format(prefix))
|
||||
class_name = SchoolClass.generate_default_group_name()
|
||||
self.assertEqual('{} 1'.format(self.prefix), class_name)
|
||||
assert "{} 1".format(prefix) == class_name
|
||||
|
||||
def test_default_class_name_if_existing(self):
|
||||
SchoolClass.objects.create(name='{} 1'.format(self.prefix))
|
||||
SchoolClass.objects.create(name='{} 10'.format(self.prefix))
|
||||
|
||||
def test_default_class_name_if_existing(prefix):
|
||||
SchoolClass.objects.create(name="{} 1".format(prefix))
|
||||
SchoolClass.objects.create(name="{} 10".format(prefix))
|
||||
class_name = SchoolClass.generate_default_group_name()
|
||||
self.assertEqual('{} 11'.format(self.prefix), class_name)
|
||||
assert "{} 11".format(prefix) == class_name
|
||||
|
||||
def test_default_class_name_with_user(self):
|
||||
user = UserFactory(username='hansli')
|
||||
|
||||
def test_default_class_name_with_user(prefix):
|
||||
user = UserFactory(username="hansli")
|
||||
class_name = SchoolClass.generate_default_group_name(user=user)
|
||||
self.assertEqual(f'{self.prefix} {user.pk}', class_name)
|
||||
assert f"{prefix} {user.pk}" == class_name
|
||||
|
||||
|
||||
class ModifySchoolClassTest(SkillboxTestCase):
|
||||
def setUp(self):
|
||||
create_users()
|
||||
self.teacher = User.objects.get(username='teacher')
|
||||
self.student = User.objects.get(username='student1')
|
||||
self.teacher = User.objects.get(username="teacher")
|
||||
self.student = User.objects.get(username="student1")
|
||||
|
||||
self.client = self.get_client(user=self.teacher)
|
||||
self.student_client = self.get_client(user=self.student)
|
||||
|
||||
def test_update_school_class(self):
|
||||
class_name = 'The Colbert Show'
|
||||
class_name = "The Colbert Show"
|
||||
|
||||
school_class = SchoolClass.objects.get(name='skillbox')
|
||||
self.assertEqual(school_class.name, 'skillbox')
|
||||
id = to_global_id('SchoolClassNode', school_class.id)
|
||||
school_class = SchoolClass.objects.get(name="skillbox")
|
||||
self.assertEqual(school_class.name, "skillbox")
|
||||
id = to_global_id("SchoolClassNode", school_class.id)
|
||||
|
||||
result = self.client.execute(UPDATE_SCHOOL_CLASS_MUTATION, variables={
|
||||
'input': {
|
||||
'id': id,
|
||||
'name': class_name
|
||||
}
|
||||
})
|
||||
result = self.client.execute(
|
||||
UPDATE_SCHOOL_CLASS_MUTATION,
|
||||
variables={"input": {"id": id, "name": class_name}},
|
||||
)
|
||||
self.assertIsNone(result.errors)
|
||||
|
||||
school_class = get_object(SchoolClass, id)
|
||||
|
|
@ -69,48 +74,41 @@ class ModifySchoolClassTest(SkillboxTestCase):
|
|||
|
||||
def test_update_school_class_not_in_class_fails(self):
|
||||
client = self.get_client()
|
||||
teacher = TeacherFactory(username='conan')
|
||||
teacher = TeacherFactory(username="conan")
|
||||
context = Context(user=teacher)
|
||||
school_class = SchoolClass.objects.get(name='skillbox')
|
||||
self.assertEqual(school_class.name, 'skillbox')
|
||||
id = to_global_id('SchoolClassNode', school_class.id)
|
||||
variables = {
|
||||
'input': {
|
||||
'id': id,
|
||||
'name': 'Nein'
|
||||
}
|
||||
}
|
||||
result = client.execute(UPDATE_SCHOOL_CLASS_MUTATION, variables=variables, context=context)
|
||||
school_class = SchoolClass.objects.get(name="skillbox")
|
||||
self.assertEqual(school_class.name, "skillbox")
|
||||
id = to_global_id("SchoolClassNode", school_class.id)
|
||||
variables = {"input": {"id": id, "name": "Nein"}}
|
||||
result = client.execute(
|
||||
UPDATE_SCHOOL_CLASS_MUTATION, variables=variables, context=context
|
||||
)
|
||||
self.assertIsNone(result.errors)
|
||||
|
||||
def test_update_school_class_fail(self):
|
||||
class_name = 'Nanana'
|
||||
class_name = "Nanana"
|
||||
|
||||
school_class = SchoolClass.objects.get(name='skillbox')
|
||||
self.assertEqual(school_class.name, 'skillbox')
|
||||
id = to_global_id('SchoolClassNode', school_class.id)
|
||||
school_class = SchoolClass.objects.get(name="skillbox")
|
||||
self.assertEqual(school_class.name, "skillbox")
|
||||
id = to_global_id("SchoolClassNode", school_class.id)
|
||||
|
||||
result = self.student_client.execute(UPDATE_SCHOOL_CLASS_MUTATION, variables={
|
||||
'input': {
|
||||
'id': id,
|
||||
'name': class_name
|
||||
}
|
||||
})
|
||||
result = self.student_client.execute(
|
||||
UPDATE_SCHOOL_CLASS_MUTATION,
|
||||
variables={"input": {"id": id, "name": class_name}},
|
||||
)
|
||||
self.assertIsNotNone(result.errors)
|
||||
|
||||
def test_create_school_class(self):
|
||||
self.assertEqual(SchoolClass.objects.count(), 2)
|
||||
class_name = 'Moordale'
|
||||
mutation = get_graphql_mutation('createClass.gql')
|
||||
query_result = self.client.execute(mutation, variables={
|
||||
'input': {
|
||||
'name': class_name
|
||||
}
|
||||
})
|
||||
class_name = "Moordale"
|
||||
mutation = get_graphql_mutation("createClass.gql")
|
||||
query_result = self.client.execute(
|
||||
mutation, variables={"input": {"name": class_name}}
|
||||
)
|
||||
self.assertIsNone(query_result.errors)
|
||||
result = query_result.data.get('createSchoolClass').get('result')
|
||||
self.assertEqual(result.get('__typename'), 'SchoolClassNode')
|
||||
id = result.get('id')
|
||||
result = query_result.data.get("createSchoolClass").get("result")
|
||||
self.assertEqual(result.get("__typename"), "SchoolClassNode")
|
||||
id = result.get("id")
|
||||
self.assertEqual(SchoolClass.objects.count(), 3)
|
||||
school_class = get_object(SchoolClass, id)
|
||||
self.assertEqual(school_class.name, class_name)
|
||||
|
|
@ -119,29 +117,25 @@ class ModifySchoolClassTest(SkillboxTestCase):
|
|||
|
||||
def test_create_school_class_duplicate_name_fail(self):
|
||||
self.assertEqual(SchoolClass.objects.count(), 2)
|
||||
class_name = 'skillbox'
|
||||
mutation = get_graphql_mutation('createClass.gql')
|
||||
class_name = "skillbox"
|
||||
mutation = get_graphql_mutation("createClass.gql")
|
||||
# if we don't do this, django wraps the whole test in an atomic operation,
|
||||
# and we trigger an exception so the query later in the test would fail
|
||||
with transaction.atomic():
|
||||
query_result = self.client.execute(mutation, variables={
|
||||
'input': {
|
||||
'name': class_name
|
||||
}
|
||||
})
|
||||
query_result = self.client.execute(
|
||||
mutation, variables={"input": {"name": class_name}}
|
||||
)
|
||||
self.assertIsNone(query_result.errors)
|
||||
result = query_result.data.get('createSchoolClass').get('result')
|
||||
self.assertEqual(result.get('__typename'), 'DuplicateName')
|
||||
reason = result.get('reason')
|
||||
self.assertEqual(reason, 'Dieser Name wird bereits verwendet.')
|
||||
result = query_result.data.get("createSchoolClass").get("result")
|
||||
self.assertEqual(result.get("__typename"), "DuplicateName")
|
||||
reason = result.get("reason")
|
||||
self.assertEqual(reason, "Dieser Name wird bereits verwendet.")
|
||||
self.assertEqual(SchoolClass.objects.count(), 2)
|
||||
|
||||
def test_create_school_class_fail_permission(self):
|
||||
self.assertEqual(SchoolClass.objects.count(), 2)
|
||||
mutation = get_graphql_mutation('createClass.gql')
|
||||
result = self.student_client.execute(mutation, variables={
|
||||
'input': {
|
||||
'name': 'No School'
|
||||
}
|
||||
})
|
||||
mutation = get_graphql_mutation("createClass.gql")
|
||||
result = self.student_client.execute(
|
||||
mutation, variables={"input": {"name": "No School"}}
|
||||
)
|
||||
self.assertIsNotNone(result.errors)
|
||||
|
|
|
|||
Loading…
Reference in New Issue