Improve assigned users filter to have old US's

remotes/origin/3.4.0rc
Álex Hermida 2018-05-22 18:25:55 +02:00 committed by Alex Hermida
parent 4001c57359
commit 1dc19695b5
6 changed files with 38 additions and 2 deletions

View File

@ -423,6 +423,29 @@ class AssignedToFilter(BaseRelatedFieldsFilter):
class AssignedUsersFilter(BaseRelatedFieldsFilter):
filter_name = 'assigned_users'
def get_lookup_expression(self, field_name, value):
if None in value:
qs_in_kwargs = {
"{}__in".format(field_name): [v for v in value if
v is not None]}
qs_isnull_kwargs = {"{}__isnull".format(field_name): True}
return Q(**qs_in_kwargs) | Q(**qs_isnull_kwargs)
else:
return Q(**{"{}__in".format(field_name): value})
def _get_queryparams(self, params):
param_name = self.param_name or self.filter_name
raw_value = params.get(param_name, None)
if raw_value:
value = self._prepare_filter_data(raw_value)
assigned_user_filter = self.get_lookup_expression(param_name, value)
assigned_to_filter = self.get_lookup_expression('assigned_to', value)
return Q(assigned_user_filter | assigned_to_filter)
return None
class StatusesFilter(BaseRelatedFieldsFilter):
filter_name = 'status'

View File

@ -74,6 +74,7 @@ class UserAdminValidator(UserValidator):
return attrs
class RecoveryValidator(validators.Validator):
token = serializers.CharField(max_length=200)
password = serializers.CharField(min_length=6)

View File

@ -188,6 +188,8 @@ class UserFactory(Factory):
username = factory.Sequence(lambda n: "user{}".format(n))
email = factory.LazyAttribute(lambda obj: '%s@email.com' % obj.username)
password = factory.PostGeneration(lambda obj, *args, **kwargs: obj.set_password(obj.username))
accepted_terms = True
read_new_terms = True
class MembershipFactory(Factory):

View File

@ -61,6 +61,7 @@ def test_auth_action_register(client, settings):
"password": "test",
"full_name": "test",
"email": "test@test.com",
"accepted_terms": True,
})
result = client.post(url, register_data, content_type="application/json")

View File

@ -22,7 +22,7 @@ from tempfile import NamedTemporaryFile
from django.core.urlresolvers import reverse
from taiga.base.utils import json
from taiga.users.serializers import UserSerializer
from taiga.users.serializers import UserAdminSerializer
from tests import factories as f
from tests.utils import helper_test_http_method, disconnect_signals, reconnect_signals
@ -102,7 +102,7 @@ def test_user_update(client, data):
data.superuser,
]
user_data = UserSerializer(data.registered_user).data
user_data = UserAdminSerializer(data.registered_user).data
user_data["full_name"] = "test"
user_data = json.dumps(user_data)

View File

@ -33,6 +33,7 @@ def register_form():
"password": "password",
"full_name": "fname",
"email": "user@email.com",
"accepted_terms": True,
"type": "public"}
@ -87,6 +88,7 @@ def test_response_200_in_public_registration(client, settings):
"full_name": "martin seamus mcfly",
"email": "mmcfly@bttf.com",
"password": "password",
"accepted_terms": True,
}
response = client.post(reverse("auth-register"), form)
@ -129,6 +131,7 @@ def test_auth_uppercase_ignore(client, settings):
"password": "password",
"full_name": "fname",
"email": "User@email.com",
"accepted_terms": True,
"type": "public"}
response = client.post(reverse("auth-register"), register_form)
@ -153,6 +156,7 @@ def test_auth_uppercase_ignore(client, settings):
"password": "password",
"full_name": "fname",
"email": "user@email.com",
"accepted_terms": True,
"type": "public"}
response = client.post(reverse("auth-register"), register_form)
@ -194,6 +198,7 @@ def test_login_fail_throttling(client, settings):
"password": "valid_password",
"full_name": "fullname",
"email": "valid_username_login_fail@email.com",
"accepted_terms": True,
"type": "public"}
response = client.post(reverse("auth-register"), register_form)
@ -235,6 +240,7 @@ def test_register_success_throttling(client, settings):
"password": "valid_password",
"full_name": "fullname",
"email": "",
"accepted_terms": True,
"type": "public"}
response = client.post(reverse("auth-register"), register_form)
assert response.status_code == 400
@ -243,6 +249,7 @@ def test_register_success_throttling(client, settings):
"password": "valid_password",
"full_name": "fullname",
"email": "valid_username_register_success@email.com",
"accepted_terms": True,
"type": "public"}
response = client.post(reverse("auth-register"), register_form)
assert response.status_code == 201
@ -251,6 +258,7 @@ def test_register_success_throttling(client, settings):
"password": "valid_password2",
"full_name": "fullname",
"email": "valid_username_register_success2@email.com",
"accepted_terms": True,
"type": "public"}
response = client.post(reverse("auth-register"), register_form)
assert response.status_code == 429
@ -259,6 +267,7 @@ def test_register_success_throttling(client, settings):
"password": "valid_password2",
"full_name": "fullname",
"email": "",
"accepted_terms": True,
"type": "public"}
response = client.post(reverse("auth-register"), register_form)
assert response.status_code == 429