def test_genusername__no_duplicate(self): from nuvavaalit.models import Voter from nuvavaalit.scripts.populate import CreateVoters session = DBSession() cs = CreateVoters(None, None) # Make sure we don't have any existing voters. self.assertEquals(0, session.query(Voter).count()) self.assertEquals(0, len(cs.usernames)) self.assertEquals(u"kai.lautaportti", cs.genusername(u"Kai".split(), u"Lautaportti")) self.assertEquals(u"pertti.pasanen", cs.genusername(u"Pertti Sakari".split(), u"Pasanen")) self.assertEquals(u"fuu.bar.boo", cs.genusername(u"Füü".split(), u"Bär bÖÖ"))
def test_genusername__duplicates_wo_middlename_fallback(self): from nuvavaalit.models import Voter from nuvavaalit.scripts.populate import CreateVoters session = DBSession() cs = CreateVoters(None, None) # Make sure we don't have any existing voters. self.assertEquals(0, session.query(Voter).count()) self.assertEquals(0, len(cs.usernames)) # First username without duplicate. self.assertEquals(u"foo.boo", cs.genusername(u"Föö".split(), u"Böö")) # Without middle name we start using suffixes right away. self.assertEquals(u"foo.boo2", cs.genusername(u"Föö".split(), u"Böö")) self.assertEquals(u"foo.boo3", cs.genusername(u"Föö".split(), u"Böö"))
def test_genusername__duplicates(self): from nuvavaalit.models import Voter from nuvavaalit.scripts.populate import CreateVoters session = DBSession() cs = CreateVoters(None, None) # Make sure we don't have any existing voters. self.assertEquals(0, session.query(Voter).count()) self.assertEquals(0, len(cs.usernames)) # First username without duplicate. self.assertEquals(u"foo.boo", cs.genusername(u"Föö Büü".split(), u"Böö")) # First duplicate uses the middle initial. self.assertEquals(u"foo.b.boo", cs.genusername(u"Föö Büü".split(), u"Böö")) # Second duplicate uses the full middle name. self.assertEquals(u"foo.buu.boo", cs.genusername(u"Föö Büü".split(), u"Böö")) # Subsequent duplicates use an increasing suffix without the middle name. self.assertEquals(u"foo.boo2", cs.genusername(u"Föö Büü".split(), u"Böö")) self.assertEquals(u"foo.boo3", cs.genusername(u"Föö Büü".split(), u"Böö"))
def test_genusername__invalid_ascii_character(self): from nuvavaalit.models import Voter from nuvavaalit.scripts.populate import CreateVoters session = DBSession() cs = CreateVoters(None, None) # Make sure we don't have any existing voters. self.assertEquals(0, session.query(Voter).count()) self.assertEquals(0, len(cs.usernames)) self.assertEquals(u"kai.lauta-portti", cs.genusername(u"Käi".split(), u"Läutä-pör'tti"))