class TestUserManagementViews(TestCase): def test_register_index(self): resp = self.client.get(reverse('user:register')) self.assertEqual(resp.status_code, 200) def test_user_creation_and_data_persistence(self): # create a user and corresponding profile testuser = '******' testpw = 'testpw' testemail = '*****@*****.**' self.user = User.objects.create_user(testuser, testemail, testpw) self.user.save() self.prof = Profile(user=self.user) self.prof.save() # create 5 learned concepts and add the previously created user to each concepts learned list learned_concepts = ['7yjmqglq', 'dvwtwwnk', '1toqv2qm'] for learned_concept_id in learned_concepts: lc, created = Concepts.objects.get_or_create(id=learned_concept_id) lc.learned_uprofs.add(self.prof) # check the /user page before authentication resp = self.client.get(reverse('user:user_main')) self.assertEqual(resp.status_code, 302) # should return a redirect # login self.client.login(username=testuser, password=testpw) resp = self.client.get(reverse('user:user_main')) # should not redirect self.assertEqual(resp.status_code, 200) # learned concepts should contain the added concepts self.assertEqual(set([lc['id'] for lc in resp.context['lconcepts']]), set(learned_concepts))
def setUp(self): super(BaseResourceTest, self).setUp() # Create a normal user. self.username = '******' # use un as pw user = User.objects.create_user(self.username, '*****@*****.**', self.username) prof = Profile(user=user) prof.save() user.save() # create a super user self.super_username = '******' # use un as pw suser = User.objects.create_superuser(self.super_username, self.super_username + "@test.com", self.super_username) suser.save() sprof = Profile(user=suser) sprof.save() self.populate_initial_graph()
def register(request, redirect_addr="/user"): # don't allow logged-in users to register a new account if request.user.is_authenticated and not is_lazy_user(request.user): return HttpResponseRedirect(redirect_addr) if request.method == 'POST': form = UserCreateForm(request.POST, instance=request.user) if form.is_valid(): # save lazy or non-lazy acct if is_lazy_user(form.instance): user = LazyUser.objects.convert(form) else: user = form.save() # create and save corresponding profile prof = Profile(user=user) prof.save() # send basic info email uname = form.cleaned_data['username'] subject, from_email, to = 'Metacademy account successfully created', '*****@*****.**', form.cleaned_data[ 'email'] text_content = TXT_ACCT_EMAIL % uname html_content = HTML_ACCT_EMAIL % uname msg = EmailMultiAlternatives(subject, text_content, from_email, [to]) msg.attach_alternative(html_content, "text/html") try: msg.send() except: # TODO handle incorrect emails better print "Unable to send confirmation message to " + to login(request, authenticate(**form.get_credentials())) return HttpResponseRedirect(redirect_addr) else: form = UserCreateForm() return render(request, "user_management/register.html", { 'form': form, })
def register(request, redirect_addr="/user"): # don't allow logged-in users to register a new account if request.user.is_authenticated and not is_lazy_user(request.user): return HttpResponseRedirect(redirect_addr) if request.method == 'POST': form = UserCreateForm(request.POST, instance=request.user) if form.is_valid(): # save lazy or non-lazy acct if is_lazy_user(form.instance): user = LazyUser.objects.convert(form) else: user = form.save() # create and save corresponding profile prof = Profile(user=user) prof.save() # send basic info email uname = form.cleaned_data['username'] subject, from_email, to = 'Metacademy account successfully created', '*****@*****.**', form.cleaned_data['email'] text_content = TXT_ACCT_EMAIL % uname html_content = HTML_ACCT_EMAIL % uname msg = EmailMultiAlternatives(subject, text_content, from_email, [to]) msg.attach_alternative(html_content, "text/html") try: msg.send() except: # TODO handle incorrect emails better print "Unable to send confirmation message to " + to login(request, authenticate(**form.get_credentials())) return HttpResponseRedirect(redirect_addr) else: form = UserCreateForm() return render(request, "user_management/register.html", { 'form': form, })
def setUp(self): super(BaseResourceTest, self).setUp() # Create a normal user. self.username = '******' # use un as pw user = User.objects.create_user(self.username, '*****@*****.**', self.username) prof = Profile(user=user) prof.save() user.save() # create a super user self.super_username = '******' # use un as pw suser = User.objects.create_superuser( self.super_username, self.super_username + "@test.com", self.super_username) suser.save() sprof = Profile(user=suser) sprof.save() self.populate_initial_graph()