Browse Source

Enforce uniqueness constraints on usernames

Getty Ritter 4 years ago
parent
commit
224e5772ce
2 changed files with 10 additions and 1 deletions
  1. 1 1
      lc/model.py
  2. 9 0
      tests/model.py

+ 1 - 1
lc/model.py

@@ -18,7 +18,7 @@ class User(Model):
     A user! you know tf this is about
     """
 
-    name = peewee.TextField()
+    name = peewee.TextField(unique=True)
     passhash = peewee.TextField()
 
     @staticmethod

+ 9 - 0
tests/model.py

@@ -1,3 +1,6 @@
+import peewee
+import pytest
+
 import lc.config as c
 import lc.request as r
 import lc.model as m
@@ -42,6 +45,12 @@ class TestDB:
         assert u.authenticate(password)
         assert u.authenticate("wrong password") is False
 
+    def test_no_duplicate_users(self):
+        name = "gdritter"
+        u1 = self.mk_user(name=name)
+        with pytest.raises(peewee.IntegrityError):
+            u2 = self.mk_user(name=name)
+
     def test_get_or_create_tag(self):
         u = self.mk_user()