Merge pull request #7 from dethos/fix-address_unique-bug

Add clean method for address in SignUp form.
This commit is contained in:
Gonçalo Valério 2020-01-28 13:29:23 +00:00 committed by GitHub
commit f53dd9b89d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 0 deletions

View File

@ -93,3 +93,9 @@ class SimpleSignUpForm(ChallengeMixin, forms.Form):
super().__init__(*args, **kwargs)
self.request = request
self.include_challange()
def clean_address(self):
value = self.cleaned_data["address"]
if Address.objects.filter(address=value).exists():
raise forms.ValidationError(_("This address already exists"))
return value

View File

@ -6,6 +6,9 @@ import pytest
from model_mommy import mommy
from django_cryptolock.forms import SimpleLoginForm, SimpleSignUpForm
from django_cryptolock.models import Address
pytestmark = pytest.mark.django_db
VALID_ADDRESS = "46fYuhPAdsxMbEeMg97LhSbFPamdiCw7C6b19VEcZSmV6xboWFZuZQ9MTbj1wLszhUExHi63CMtsWjDTrRDqegZiPVebgYq"
User = get_user_model()
@ -67,3 +70,20 @@ def test_simplesignupform_generaes_no_new_challenge():
form = SimpleSignUpForm(request=request, data={"address": ""})
assert not form.initial.get("challenge")
assert not initial.get("current_challenge")
def test_validate_address_unique(settings):
settings.DJCL_MONERO_NETWORK = "mainnet"
mommy.make(Address, address=VALID_ADDRESS)
request = MagicMock()
form = SimpleSignUpForm(
request=request,
data={
"username": "foo",
"address": VALID_ADDRESS,
"challenge": "12345678",
"signature": "some valid signature",
},
)
assert not form.is_valid()
assert "This address already exists" in form.errors["address"]