def setUp(self): self.voc = Vocabulary(name="voc") self.voc.save() self.user = User(username="******", password="******") self.user.save() self.up = UserProfile(user=self.user, current_vocabulary=self.voc, daily_words_amount=35) self.up.save() f = file("scripts/vocabulary.txt", "r") for lno, line in enumerate(f): word, exp = line.strip().split(" ", 1) w = Word(content=word, description=exp) w.save() w.vocabulary = [self.voc] w.save() if lno >= 49: # 只添加 50 个单词 break f.close()
def user_register(request): if not request.user.is_active: if request.method == "GET": return render(request, "accounts/register.html") elif request.method == "POST": username = request.POST['username'] email = request.POST['email'] password1 = request.POST['password'] password2 = request.POST['repeat-password'] # 数据合法性检查 if password1 != password2: error_message = "Password doesn't match!" elif len(password1) < 6: error_message = "Password must be as least 6 characters!" elif not re.match(r"^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$", email): error_message = "Email is not valid!" else: try: user = User.objects.create_user(username, email, password1) except IntegrityError: error_message = "User already exists!" else: user_profile = UserProfile(user=user) user_profile.save() user = authenticate(username=username, password=password1) login(request, user) return HttpResponseRedirect(reverse("memo:index")) return render(request, "accounts/register.html", {"error": error_message}) else: return HttpResponseRedirect(reverse("memo:index"))
class WordSelectingTests(TestCase): def setUp(self): self.voc = Vocabulary(name="voc") self.voc.save() self.user = User(username="******", password="******") self.user.save() self.up = UserProfile(user=self.user, current_vocabulary=self.voc, daily_words_amount=35) self.up.save() f = file("scripts/vocabulary.txt", "r") for lno, line in enumerate(f): word, exp = line.strip().split(" ", 1) w = Word(content=word, description=exp) w.save() w.vocabulary = [self.voc] w.save() if lno >= 49: # 只添加 50 个单词 break f.close() def test_select_words(self): u"""单词随机选择测试""" words = select_word(self.user) words_set = list(words) self.assertEqual(len(words_set), self.up.daily_words_amount) for w in words_set: # 将第一组单词添加到已掌握单词 self.up.memorized_words.add(w) words = select_word(self.user) words_set = list(words) # 共 50 单词,已掌握 35 个,第二组只能选出 15 个 self.assertEqual(len(words_set), 15)