Esempio n. 1
0
 def test_viewing_saved_notepad_content(self):
     self.login_as(email='*****@*****.**', password='******')
     data = {
         'name':
         'My last semister Assignment',
         'short_description':
         '',
         'content':
         open("/".join(
             [settings.ROOT_PATH, 'users', 'fixtures',
              'assignment.py'])).read(),
         'public':
         True
     }
     response = self.client.post(
         path=url_reverse('users.views.view_notepad'), data=data)
     self.assertTrue(response)
     response = self.client.get(
         url_reverse('users.views.view_note',
                     args=(Note.objects.get(name=data['name']).id, )))
     self.assertTrue(response)
     self.assertEquals(response['Content-Type'], 'text/plain')
     self.assertEquals(
         str(response.content).strip(),
         str(data['content']).strip())
Esempio n. 2
0
def view_webresume(request):
    userprofile = loggedin_userprofile(request)
    if userprofile.can_update_slug():
        from users.messages import NEED_TO_PICK_A_WEBRESUME_URL_MESSAGE
        messages.error(request, NEED_TO_PICK_A_WEBRESUME_URL_MESSAGE)
        return HttpResponseRedirect(url_reverse('users.views.view_account_settings'))
    return HttpResponseRedirect(redirect_to=url_reverse('users.views.view_userprofile', args=(userprofile.slug,)))
Esempio n. 3
0
 def test_modify_snippet_url(self):
     self.assertEquals(Snippet.objects.count(), 0)
     login_done = self.client.login(username='******', password='******')
     self.assertTrue(login_done)
     form_data = {'title':'Some Snippet',
                  'explanation':'Some Snippet',
                  'code':'x=0',
                  'public':False,
                  'lang':'py',
                  'tags':'angry pythonista'}
     self.client.post(url_reverse('quest.views.view_add_snippet'),
                      form_data)
     snippet = Snippet.objects.latest()
     response = self.client.get(url_reverse('quest.views.view_modify_snippet',
                                            args=(snippet.id, snippet.slug)))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'add_snippet.html')
     context = response.context[0]
     form = context.get('form')
     self.assertFalse(form.errors)
     self.assertEquals(form.cleaned_data.get('title'), form_data['title'])
     self.assertEquals(form.cleaned_data.get('explanation'), form_data['explanation'])
     self.assertEquals(form.cleaned_data.get('code'), form_data['code'])
     self.assertEquals(form.cleaned_data.get('lang'), form_data['lang'])
     self.assertFalse(form.cleaned_data.get('public'))
Esempio n. 4
0
 def test_userprofilepage_success_response(self):
     userprofile = UserProfile.objects.get(
         user__email='*****@*****.**')
     response = self.client.get(path=url_reverse(
         'users.views.view_userprofile', args=(userprofile.slug, )))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'user_profile.html')
     context = response.context[0]
     self.assertTrue(context.has_key('userprofile'))
     userprofile = context.get('userprofile')
     self.assertEquals(
         userprofile.user.email,
         UserProfile.objects.get(
             user__email='*****@*****.**').user.email)
     self.assertTrue(context.has_key('public_notes'))
     self.login_as(email='*****@*****.**', password='******')
     form_data = {
         'name': 'My Python Assignment',
         'short_description': 'Hello World',
         'content': 'print "Hello World"',
         'public': True
     }
     response = self.client.post(
         path=url_reverse('users.views.view_notepad'), data=form_data)
     self.logout()
     response = self.client.get(path=url_reverse(
         'users.views.view_userprofile', args=(userprofile.slug, )))
     context = response.context[0]
     public_notes = context.get('public_notes')
     self.assertTrue(public_notes)
     self.assertEquals(len(public_notes), 1)
     self.assertEquals(form_data['name'], public_notes[0]['name'])
     self.assertTrue(context.has_key('asked_questions'))
     self.assertTrue(context.has_key('answered_questions'))
Esempio n. 5
0
 def test_valid_signup(self):
     form_data = {
         'email': '*****@*****.**',
         'password': '******',
         'name': 'somename',
         'college': 'CBIT, Hyderabad.'
     }
     response = self.client.post(
         path='/accounts/studentregister/',  #TODO:url hardcoding is bad.
         data=form_data)
     self.assertRedirects(
         response,
         expected_url=url_reverse('users.views.view_homepage'),
         status_code=302,
         target_status_code=200)
     response = self.client.get(
         path=url_reverse('users.views.view_homepage'))
     self.assertTemplateUsed(response, 'dashboard.html')
     context = response.context[0]
     self.assertTrue(context.has_key('userprofile'))
     userprofile = context.get('userprofile')
     self.assertTrue(userprofile)
     self.assertEquals(userprofile.user.email, form_data['email'])
     self.assertTrue(userprofile.check_password(form_data['password']))
     self.assertTrue(context.has_key('userprofilegroup'))
     userprofilegroup = context.get('userprofilegroup')
     self.assertEquals(userprofilegroup, 'Student')
Esempio n. 6
0
 def test_saving_domain_url_once_and_twice(self):
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(path=url_reverse('users.views.view_account_settings'))
     context = response.context[0]
     self.assertTrue(context.has_key('personal_form'))
     personal_form = context.get('personal_form')
     self.assertTrue(personal_form.errors)
     data = {'name':'Nanda.B',
             'new_password':'******',
             'slug':'nandakishore'}
     response = self.client.post(path=url_reverse('users.views.view_save_personal_settings'),
                                 data=data,
                                 HTTP_X_REQUESTED_WITH='XMLHttpRequest')
     self.assertTrue(response)
     context = response.context
     self.assertTrue(context.has_key('personal_form'))
     personal_form = context.get('personal_form')
     self.assertFalse(personal_form.errors)
     userprofile = context.get('userprofile')
     self.assertTrue(userprofile.check_password(data['new_password']))
     from django.contrib.sites.models import Site
     self.assertEqual(userprofile.domain, ".".join([userprofile.slug, Site.objects.get(id=settings.SITE_ID).domain]))
     self.assertEqual(userprofile.name, data['name'])
     response = self.client.get(path=url_reverse('users.views.view_account_settings'))
     self.assertTrue(userprofile.domain in response.content)
     from users.models import CantUpdateSlugAgainException
     self.assertRaises(CantUpdateSlugAgainException,
                       userprofile.update_slug,
                       new_slug_name='newslug')
Esempio n. 7
0
 def test_asking_a_question_with_xss(self):
     self.login_as(email='*****@*****.**', password='******')
     question_data = {
         'title': 'How is Stud2dotoh Hiring ?',
         'description':
         'Stud2dotoh! <script>alert("I will shoot you in the head")</script>',
         'tags': 'sometag'
     }
     response = self.client.post(
         url_reverse('quest.views.view_ask_question'), question_data)
     question = Question.objects.latest()
     self.assertRedirects(response,
                          expected_url=url_reverse(
                              'quest.views.view_question',
                              args=(question.id, question.slug)),
                          status_code=302,
                          target_status_code=200)
     response = self.client.get(
         url_reverse('quest.views.view_question',
                     args=(question.id, question.slug)))
     self.assertTrue(response)
     context = response.context[0]
     question = context.get('question')
     question_description = question.description
     self.assertTrue(question_description)
     self.assertFalse(question_data['description'] in question_description)
     self.assertFalse('<script>' in question_description)
Esempio n. 8
0
 def test_unaccepting_an_answer_of_a_question(self):
     question = Question.objects.latest()
     answer = question.answers[0]
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.post(url_reverse(
         'quest.views.view_accept_answer', args=(question.id, )),
                                 data={
                                     'question_id': question.id,
                                     'answer_id': answer.id
                                 })
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'answers.html')
     self.assertTrue(Answer.objects.get(id=answer.id).accepted)
     answer = question.answers[1]
     response = self.client.post(url_reverse(
         'quest.views.view_accept_answer', args=(question.id, )),
                                 data={
                                     'question_id': question.id,
                                     'answer_id': answer.id
                                 })
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'answers.html')
     self.assertTrue(Answer.objects.get(id=answer.id).accepted)
Esempio n. 9
0
 def test_asking_a_question(self):
     self.login_as(email='*****@*****.**', password='******')
     question_data = {
         'title': 'How is Stud2dotoh Hiring ?',
         'description':
         'Just interested in the process of hiring for Stud2dotoh',
         'tags': ('hiring', )
     }
     old_questions_count = Question.objects.count()
     response = self.client.post(
         url_reverse('quest.views.view_ask_question'), question_data)
     new_questions_count = Question.objects.count()
     self.assertEquals(new_questions_count, old_questions_count + 1)
     question = Question.objects.latest()
     self.assertTrue(question)
     self.assertEquals(question.title, question_data['title'])
     self.assertEquals(question.description, question_data['description'])
     tags = question.tags.all()
     self.assertEquals(tags.count(), 1)
     self.assertEquals(tags[0].name, question_data['tags'][0])
     self.assertEquals(
         UserProfile.objects.get(user__email='*****@*****.**').id,
         question.raised_by.id)
     self.assertRedirects(response,
                          expected_url=url_reverse(
                              'quest.views.view_question',
                              args=(question.id, question.slug)),
                          status_code=302,
                          target_status_code=200)
Esempio n. 10
0
def view_contactgroup(request, group_type, group_id, contactgroup_template):
    userprofile = loggedin_userprofile(request)
    if group_type == 'college':
        group = get_object_or_404(College, id=int(group_id))
        to = "%s Students" % group.name
        redirect_url = url_reverse('users.views.view_college', args=(group_id, group.slug))
    elif group_type == 'company':
        group = get_object_or_404(Company, id=int(group_id))
        to = "%s Employees" % group.name
        redirect_url = url_reverse('users.views.view_company', args=(group_id, group.slug))
    else:
        raise Http404
    if request.method == 'POST':
        contactgroupform = ContactGroupForm(post_data(request))
        if contactgroupform.is_valid():
            mail_group(group_type=group_type,
                       group=group,
                       from_email=userprofile.user.email,
                       message=contactgroupform.cleaned_data.get('message'),
                       from_name=userprofile.name,
                       subject=contactgroupform.cleaned_data.get('subject'))
            from users.messages import CONTACTED_SUCCESSFULLY
            messages.success(request, CONTACTED_SUCCESSFULLY)
            return HttpResponseRedirect(redirect_to=redirect_url)
    contactgroupform = ContactGroupForm({'to':to})
    return response(request, contactgroup_template, {'contactgroupform':contactgroupform,
                                                     'group_type':group_type,
                                                     'group_id':group_id})
Esempio n. 11
0
 def test_anonymous_user_logout(self):
     response = self.client.get(path=url_reverse('users.views.view_logout'))
     self.assertRedirects(
         response,
         expected_url=url_reverse('users.views.view_homepage'),
         status_code=302,
         target_status_code=200)
Esempio n. 12
0
 def test_userprofilepage_success_response(self):
     userprofile = UserProfile.objects.get(user__email='*****@*****.**')
     response = self.client.get(path=url_reverse('users.views.view_userprofile', args=(userprofile.slug,)))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'user_profile.html')
     context = response.context[0]
     self.assertTrue(context.has_key('userprofile'))
     userprofile = context.get('userprofile')
     self.assertEquals(userprofile.user.email, UserProfile.objects.get(user__email='*****@*****.**').user.email)
     self.assertTrue(context.has_key('public_notes'))
     self.login_as(email='*****@*****.**', password='******')
     form_data = {'name': 'My Python Assignment',
                  'short_description': 'Hello World',
                  'content': 'print "Hello World"',
                  'public': True}
     response = self.client.post(path=url_reverse('users.views.view_notepad'),
                                 data=form_data)
     self.logout()
     response = self.client.get(path=url_reverse('users.views.view_userprofile', args=(userprofile.slug,)))
     context = response.context[0]
     public_notes = context.get('public_notes')
     self.assertTrue(public_notes)
     self.assertEquals(len(public_notes), 1)
     self.assertEquals(form_data['name'], public_notes[0]['name'])
     self.assertTrue(context.has_key('asked_questions'))
     self.assertTrue(context.has_key('answered_questions'))
Esempio n. 13
0
def auth_page(request):
    response = HttpResponseRedirect(url_reverse('auth_page'))
    if request.method == 'POST':
        post_data = request.POST.dict()
        login = post_data.get('login')
        password = post_data.get('password')
        try:
            User.objects.get(username=login)
        except User.DoesNotExist:
            messages.error(request, 'No such user in system')
            return response

        user = auth.authenticate(username=login, password=password)
        if user and user.is_active:
            messages.success(request, 'Welcome to system')
            auth.login(request, user)
            response = HttpResponseRedirect(url_reverse('index'))
        elif user and not user.is_active:
            messages.info(request, 'Your profile is blocked.')
        else:
            messages.error(request, 'Wrong login or password')
    else:
        response = render(request, 'c_auth_page/auth_page.html',
                          {'title': 'Authentication'})
    return response
Esempio n. 14
0
 def test_logout_link_visibility(self):
     response = self.client.get(
         path=url_reverse('users.views.view_homepage'))
     self.assertTrue('Logout' not in response.content)
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(
         path=url_reverse('users.views.view_homepage'))
     self.assertTrue('Logout' in response.content)
Esempio n. 15
0
 def test_valid_userlogin(self):
     form_data = {"email": "*****@*****.**", "password": "******"}
     response = self.client.post(path=url_reverse("users.views.view_login"), data=form_data)
     self.assertRedirects(
         response, expected_url=url_reverse("feeds.views.view_homepage"), status_code=302, target_status_code=200
     )
     response = self.client.get(url_reverse("feeds.views.view_homepage"))
     self.assertEquals(response.context[0].get("user").email, form_data["email"])
Esempio n. 16
0
 def test_answer_page_fresh_access(self):
     question = Question.objects.latest()
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(url_reverse('quest.views.view_give_answer', args=(question.id,)))
     self.assertRedirects(response,
                          expected_url=url_reverse('quest.views.view_question', args=(question.id, question.slug)),
                          status_code=302,
                          target_status_code=200)
Esempio n. 17
0
 def test_valid_usersignup(self):
     form_data = {"name": "Some Empty User", "email": "*****@*****.**", "password": "******"}
     response = self.client.post(path=url_reverse("users.views.view_register"), data=form_data)
     self.assertRedirects(
         response, expected_url=url_reverse("feeds.views.view_homepage"), status_code=302, target_status_code=200
     )
     userprofile = UserProfile.objects.latest()
     self.assertTrue(userprofile)
     self.assertEquals(userprofile.email, form_data["email"])
Esempio n. 18
0
 def test_valid_userlogin(self):
     form_data = {'email': '*****@*****.**',
                  'password': '******'}
     response = self.client.post(path=url_reverse('users.views.view_login'),
                                 data=form_data)
     self.assertRedirects(response,
                          expected_url=url_reverse('users.views.view_homepage'),
                          status_code=302,
                          target_status_code=200)
     response = self.client.get(url_reverse('users.views.view_homepage'))
     self.assertEquals(response.context[0].get('user').email, form_data['email'])
Esempio n. 19
0
 def test_answer_page_fresh_access(self):
     question = Question.objects.latest()
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(
         url_reverse('quest.views.view_give_answer', args=(question.id, )))
     self.assertRedirects(response,
                          expected_url=url_reverse(
                              'quest.views.view_question',
                              args=(question.id, question.slug)),
                          status_code=302,
                          target_status_code=200)
Esempio n. 20
0
 def test_valid_userlogin(self):
     form_data = {'email': '*****@*****.**', 'password': '******'}
     response = self.client.post(path=url_reverse('users.views.view_login'),
                                 data=form_data)
     self.assertRedirects(
         response,
         expected_url=url_reverse('users.views.view_homepage'),
         status_code=302,
         target_status_code=200)
     response = self.client.get(url_reverse('users.views.view_homepage'))
     self.assertEquals(response.context[0].get('user').email,
                       form_data['email'])
Esempio n. 21
0
 def test_authenticated_user_logout(self):
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(path=url_reverse('users.views.view_logout'))
     self.assertRedirects(response,
                          expected_url=url_reverse('users.views.view_homepage'),
                          status_code=302,
                          target_status_code=200)
     response = self.client.get(path=url_reverse('users.views.view_notepad'))
     self.assertRedirects(response,
                          expected_url='/accounts/login/?next=/notepad/',
                          status_code=302,
                          target_status_code=200)
Esempio n. 22
0
 def test_valid_usersignup(self):
     form_data = {'name': 'Some Empty User',
                  'email': '*****@*****.**',
                  'password': '******'}
     response = self.client.post(path=url_reverse('users.views.view_register'),
                      data=form_data)
     self.assertRedirects(response,
                          expected_url=url_reverse('quest.views.view_homepage'),
                          status_code=302,
                          target_status_code=200)
     userprofile = UserProfile.objects.latest()
     self.assertTrue(userprofile)
     self.assertEquals(userprofile.email, form_data['email'])
Esempio n. 23
0
 def test_viewing_saved_notepad_content(self):
     self.login_as(email='*****@*****.**', password='******')
     data = {'name':'My last semister Assignment',
             'short_description':'',
             'content':open("/".join([settings.ROOT_PATH, 'users', 'fixtures', 'assignment.py'])).read(),
             'public':True}
     response = self.client.post(path=url_reverse('users.views.view_notepad'),
                                 data=data)
     self.assertTrue(response)
     response = self.client.get(url_reverse('users.views.view_note', args=(Note.objects.get(name=data['name']).id,)))
     self.assertTrue(response)
     self.assertEquals(response['Content-Type'], 'text/plain')
     self.assertEquals(str(response.content).strip(), str(data['content']).strip())
Esempio n. 24
0
 def test_saving_modified_achievement_as_loggedin_user(self):
     self.login_as(email='*****@*****.**', password='******')
     achievement = Achievement.objects.latest()
     data = {'title':achievement.title.replace('real', 'fake'),
             'description':2*achievement.description}
     response = self.client.post(path=url_reverse('users.views.view_edit_achievement', args=(achievement.id,)), data=data)
     self.assertRedirects(response,
                          expected_url=url_reverse('users.views.view_all_achievements'),
                          status_code=302,
                          target_status_code=200)
     achievement = Achievement.objects.latest()
     self.assertEquals(achievement.title, data['title'])
     self.assertEquals(achievement.description, data['description'])
Esempio n. 25
0
 def test_edit_question_with_valid_content(self):
     self.login_as(email='*****@*****.**', password='******')
     question = Question.objects.latest()
     valid_question_data = {'title':"Some Valid title",
                            'description':'Some valid description',
                            'tags':'valid'}
     response = self.client.post(url_reverse('quest.views.view_edit_question', args=(question.id, question.slug)), data=valid_question_data)
     self.assertRedirects(response,
                          expected_url=url_reverse('quest.views.view_question', args=(question.id, question.slug)),
                          status_code=302,
                          target_status_code=200)
     question = Question.objects.get(id=question.id)
     self.assertEquals(valid_question_data['title'], question.title)
     self.assertEquals(valid_question_data['description'], question.description)
Esempio n. 26
0
 def test_authenticated_user_logout(self):
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(path=url_reverse('users.views.view_logout'))
     self.assertRedirects(
         response,
         expected_url=url_reverse('users.views.view_homepage'),
         status_code=302,
         target_status_code=200)
     response = self.client.get(
         path=url_reverse('users.views.view_notepad'))
     self.assertRedirects(response,
                          expected_url='/accounts/login/?next=/notepad/',
                          status_code=302,
                          target_status_code=200)
Esempio n. 27
0
 def test_asking_a_question_with_blocked_htmltags(self):
     self.login_as(email='*****@*****.**', password='******')
     question_data = {'title':'How is Stud2dotoh Hiring ?',
                      'description':'Stud2dotoh! <script>alert("I will shoot you in the head")</script><input type=\'text\' name=\'head_name\' value=\'Your Name\'/><marquee>I am big distracting rolling banner</marquee>',
                      'tags':'sometag'}
     self.client.post(url_reverse('quest.views.view_ask_question'), question_data)
     question = Question.objects.latest()
     response = self.client.get(url_reverse('quest.views.view_question', args=(question.id, question.slug)))
     self.assertTrue(response)
     context = response.context[0]
     question = context.get('question')
     question_description = question.description
     for tag in settings.FILTER_HTML_TAGS.split(' '):
         self.assertFalse(tag in question_description)
Esempio n. 28
0
 def test_unaccepting_an_answer_of_a_question(self):
     question = Question.objects.latest()
     answer = question.answers[0]
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.post(url_reverse('quest.views.view_accept_answer', args=(question.id,)), data={'question_id':question.id, 'answer_id':answer.id})
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'answers.html')
     self.assertTrue(Answer.objects.get(id=answer.id).accepted)
     answer = question.answers[1]
     response = self.client.post(url_reverse('quest.views.view_accept_answer', args=(question.id,)), data={'question_id':question.id, 'answer_id':answer.id})
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'answers.html')
     self.assertTrue(Answer.objects.get(id=answer.id).accepted)
Esempio n. 29
0
 def test_creating_achievement_as_loggedin_user(self):
     self.login_as(email='*****@*****.**', password='******')
     data = {'title':2*'I did this this this',
             'description':50*'blah'}
     response = self.client.post(url_reverse('users.views.view_add_achievement'),
                                 data=data)
     self.assertRedirects(response,
                          expected_url=url_reverse('users.views.view_all_achievements'),
                          status_code=302,
                          target_status_code=200)
     latest_achievement = Achievement.objects.latest()
     response = self.client.get(url_reverse("users.views.view_all_achievements"))
     context = response.context[0]
     userprofile = context.get('userprofile')
     self.assertTrue(userprofile.is_my_achievement(latest_achievement))
Esempio n. 30
0
def _contest_home_admin(request, contest, last_log_entry=None):
  button = <x:frag />
  show_nothing = False
  if contest.state == Contest.UNASSIGNED:
    if contest.intended_start_date <= now():
      button = <button class="btn btn-success">Start</button>
      button_action = 'contest-start'
    else:
      show_nothing = True
  elif contest.state == Contest.STARTED:
    if contest.get_time_left() > 0.0:
      button = <button class="btn btn-warning">Pause</button>
      button_action = 'contest-pause'
    else:
      button = <button class="btn btn-danger">Stop</button>
      button_action = 'contest-stop'
  elif contest.state == Contest.PAUSED:
    button = <button class="btn btn-success">Resume</button>
    button_action = 'contest-start'
  elif contest.state == Contest.STOPPED:
    show_nothing = True
  else:
    raise Http404 #TODO: just in case of inconsistency...

  if show_nothing == False:
    button.setAttribute('class',
        button.getAttribute('class') + ' js-post-btn')
    button.setAttribute('data-action',
        url_reverse(button_action, args=(contest.id,)))

  entries = LogEntry.get_all_entries(contest.id, last_log_entry)

  new_last_log_entry = 0
  if entries:
    new_last_log_entry = entries[0].id

  content_entries = <div id="log-entries" />
  for entry in entries:
    content_entries.appendChild(<cs:log-entry entry={entry} />)

  content = \
  <div class="contest-activity-log">
    <div class="btn-toolbar pull-right">
      {button}
      <button class="btn js-get-btn"
        data-href={url_reverse('admin:contests_contest_change',
                               args=(contest.id,))}>
        Edit
Esempio n. 31
0
 def test_saving_academic_settings_by_student_and_professor(self):
     login_details = (('*****@*****.**', 'nopassword'),
                      ('*****@*****.**', 'nopassword'))
     for login in login_details:
         self.login_as(email=login[0], password=login[1])
         data = {
             'branch': 'CSE',
             'college': 'Vasavi College of Engg.',
             'start_year': 1998,
             'end_year': 1999
         }
         response = self.client.post(
             path=url_reverse('users.views.view_save_acad_settings'),
             data=data,
             HTTP_X_REQUESTED_WITH='XMLHttpRequest')
         self.assertTrue(response)
         context = response.context
         self.assertTrue(context.has_key('acad_form'))
         acad_form = context.get('acad_form')
         self.assertFalse(acad_form.errors)
         userprofile = context.get('userprofile')
         acad_details = userprofile.acad_details
         self.assertEquals(acad_details[0], data['branch'])
         self.assertEquals(acad_details[1].name, data['college'])
         self.assertEquals(acad_details[2], data['start_year'])
         self.assertEquals(acad_details[3], data['end_year'])
         self.logout()
Esempio n. 32
0
 def test_anonymous_access_to_achievements_page(self):
     response = self.client.get(url_reverse("users.views.view_all_achievements"))
     self.assertTrue(response)
     self.assertRedirects(response,
                          expected_url='/accounts/login/?next=/achievements/',
                          status_code=302,
                          target_status_code=200)
Esempio n. 33
0
 def test_fresh_settings_page_access_by_professor(self):
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(url_reverse('users.views.view_account_settings'))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'personal_settings.html')
     context = response.context[0]
     self.assertTrue(context.has_key('personal_form'))
     form = context.get('personal_form')
     self.assertTrue(form.errors)
     self.assertTrue(form.errors.get('slug'))
     self.assertFalse(form.errors.get('name'))
     self.assertFalse(form.errors.get('new_password'))
     self.assertTemplateUsed(response, 'acad_settings.html')
     self.assertTrue(context.has_key('acad_form'))
     form = context.get('acad_form')
     self.assertTrue(form.errors)
     self.assertTrue(form.errors.get('branch'))
     self.assertTrue(form.errors.get('college'))
     self.assertFalse(form.errors.get('start_year'))
     self.assertFalse(form.errors.get('end_year'))
     self.assertTrue(context.has_key('workinfo_form'))
     form = context.get('workinfo_form')
     self.assertTrue(form.errors)
     self.assertTrue(form.errors.get('workplace'))
     self.assertFalse(form.errors.get('designation'))
     self.assertTrue(form.errors.get('years_of_exp'))
Esempio n. 34
0
 def test_invalidlink_for_userprofilepage(self):
     userprofile = UserProfile.objects.get(
         user__email='*****@*****.**')
     response = self.client.get(path=url_reverse(
         'users.views.view_userprofile', args=('madness', )))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 404)
Esempio n. 35
0
 def test_access_to_notepad_page(self):
     response = self.client.get(path=url_reverse('users.views.view_notepad'))
     self.assertRedirects(response,
                          expected_url='/accounts/login/?next=/notepad/',
                          status_code=302,
                          target_status_code=200)        
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(path=url_reverse('users.views.view_notepad'))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'notepad.html')
     context = response.context[0]
     form = context.get('form')
     self.assertFalse(form.is_bound)
     self.assertFalse(form.errors)
     self.assertTrue(context.has_key('all_notes'))
Esempio n. 36
0
def maskurl(given_url, *args, **kwargs):
    """
    Probable usage:
    - {% url 'main' %} ->
            {% maskurl 'main' %}
    - {% url 'list' 4 %} ->
            {% maskurl 'main' 4 %}
    - {% url 'list' 'blah' %} ->
            {% maskurl 'main' 'blah' %}
    - {% url 'list' object.id %} ->
            {% maskurl 'main' object.id %}
    - {% url 'list' obj1.id obj2.id %} ->
            {% maskurl 'main' obj1.id obj2.id %}
    - {% url 'list' obj1.name|title obj2.id|lower %} ->
            {% maskurl 'main' obj1.id|title obj2.id|lower %}
    - {{ reversed_url }} ->
            {% maskurl reversed_url %}

    After Django 1.7.0 version url built in
    templatetag returns quoted paths
    """

    maskedurl = ""
    match = given_url.find("/") == -1
    if match:
        reversed_url = url_reverse(given_url, args=args, kwargs=kwargs)
        resolved_url = urlunquote(reversed_url)
        maskedurl = dumps(resolved_url.lstrip('/'))
    else:
        maskedurl = dumps(given_url.lstrip('/'))

    if DJANGO_VERSION >= 170:
        maskedurl = urlquote(maskedurl)

    return '/%s' % maskedurl
Esempio n. 37
0
 def test_settings_page_access_anonymously(self):
     response = self.client.get(
         url_reverse('users.views.view_account_settings'))
     self.assertRedirects(response,
                          expected_url='/accounts/login/?next=/settings/',
                          status_code=302,
                          target_status_code=200)
Esempio n. 38
0
 def test_fresh_settings_page_access_by_employee(self):
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(
         url_reverse('users.views.view_account_settings'))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'personal_settings.html')
     context = response.context[0]
     self.assertTrue(context.has_key('personal_form'))
     form = context.get('personal_form')
     self.assertFalse(form.errors)
     self.assertTemplateUsed(response, 'acad_settings.html')
     self.assertTrue(context.has_key('acad_form'))
     form = context.get('acad_form')
     self.assertTrue(form.errors)
     self.assertTrue(form.errors.get('branch'))
     self.assertTrue(form.errors.get('college'))
     self.assertFalse(form.errors.get('start_year'))
     self.assertFalse(form.errors.get('end_year'))
     self.assertTrue(context.has_key('workinfo_form'))
     form = context.get('workinfo_form')
     self.assertTrue(form.errors)
     self.assertTrue(form.errors.get('workplace'))
     self.assertFalse(form.errors.get('designation'))
     self.assertTrue(form.errors.get('years_of_exp'))
Esempio n. 39
0
 def test_fresh_access_as_authenticated_user(self):
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get('/accounts/register/')
     self.assertRedirects(response,
                          expected_url=url_reverse('users.views.view_homepage'),
                          status_code=302,
                          target_status_code=200)
Esempio n. 40
0
def view_give_answer(request, question_id, give_answer_template,
                     question_template):
    question = get_object_or_404(Question, id=int(question_id))
    if request.method == 'POST':
        form = GiveAnswerForm(post_data(request))
        if form.is_valid():
            userprofile = loggedin_userprofile(request)
            new_answer = Answer.objects.create_answer(
                question=question,
                description=form.cleaned_data.get('description'),
                userprofile=userprofile)
            new_anwer_emailer(question, new_answer)
            from quest.messages import ANSWER_POSTING_SUCCESSFUL
            messages.success(request, ANSWER_POSTING_SUCCESSFUL)
            give_answer_form = GiveAnswerForm()
            return response(request, question_template, {
                'question': question,
                'give_answer_form': give_answer_form
            })
        return response(request, question_template, {
            'question': question,
            'give_answer_form': form
        })
    return HttpResponseRedirect(redirect_to=url_reverse(
        'quest.views.view_question', args=(question.id, question.slug)))
Esempio n. 41
0
 def test_login_access_to_homepage(self):
     self.login_as(email='*****@*****.**', password='******')
     response = self.client.get(
         path=url_reverse('users.views.view_homepage'))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'homepage.html')
Esempio n. 42
0
 def test_editing_achievement_as_anonymous_user(self):
     achievement = Achievement.objects.latest()
     response = self.client.get(url_reverse('users.views.view_edit_achievement', args=(achievement.id,)))
     self.assertRedirects(response,
                          expected_url='/accounts/login/?next=/edit_achievement/%s/' % achievement.id,
                          status_code=302,
                          target_status_code=200)
Esempio n. 43
0
def build_table_row(row_obj, table_obj, onclick_column=None, target_link=None):
    print(
        '--->onclick',
        onclick_column,
    )
    row_ele = "<tr>"
    for index, column_name in enumerate(table_obj.list_display):
        column_data = row_obj._meta.get_field(column_name)._get_val_from_obj(
            row_obj)
        print column_data
        #        if column_name in table_obj.choice_fields:
        #            column_data = getattr(row_obj,'get_%s_display'%column_name)()
        if column_name in table_obj.fk_fields:
            column_data = getattr(row_obj, column_name).__str__()
        if onclick_column == column_name:
            column = ''' <td><a href=%s>%s</a></td> ''' % (url_reverse(
                target_link, args=(column_data, )), column_data)
        else:
            column = "<td>%s</td>" % column_data
        row_ele += column
    #for dynamic display
    if table_obj.dynamic_fk:
        if hasattr(row_obj, table_obj.dynamic_fk):
            #print("----dynamic:",getattr(row_obj,table_obj.dynamic_fk), row_obj)
            #print(row_obj.networkdevice)
            dy_fk = getattr(row_obj, table_obj.dynamic_fk)  #拿到的是asset_type的值
            if hasattr(row_obj, dy_fk):
                dy_fk_obj = getattr(row_obj, dy_fk)
                print("-->type", type(dy_fk_obj), dy_fk_obj)
                for index, column_name in enumerate(
                        table_obj.dynamic_list_display):
                    if hasattr(dy_fk_obj, column_name):
                        if column_name in table_obj.dynamic_choice_fields:
                            column_data = getattr(
                                dy_fk_obj, 'get_%s_display' % column_name)()
                        else:
                            column_data = dy_fk_obj._meta.get_field(
                                column_name)._get_val_from_obj(dy_fk_obj)
                        print("dynamic column data", column_data)

                        column = "<td>%s</td>" % column_data
                    else:
                        column = "<td>n/a</td>"
                    row_ele += column
            else:
                #这个关联的表还没创建呢, 但也要创建空的html td占位符
                for index, column_name in enumerate(
                        table_obj.dynamic_list_display):
                    row_ele += "<td></td>"

    for field in table_obj.m2m_fields:
        m2m_obj = getattr(row_obj, field)
        column = "<td> "
        for obj in m2m_obj.select_related():
            column += "<span style='display:inline-block' class='label label-mint label-info'>%s</span>" % obj.__str__(
            )
        column += "</td>"
        row_ele += column
    row_ele += "</tr>"
    return mark_safe(row_ele)
Esempio n. 44
0
 def test_valid_notepad_saving(self):
     self.login_as(email='*****@*****.**', password='******')
     form_data = {
         'name': 'My Python Assignment',
         'short_description': 'Hello World',
         'content': 'print "Hello World"',
         'public': True
     }
     previous_count = Note.objects.filter(
         userprofile=UserProfile.objects.get(
             user__email='*****@*****.**')).count()
     response = self.client.post(
         path=url_reverse('users.views.view_notepad'), data=form_data)
     self.assertTrue(response)
     self.assertEquals(response.status_code, 200)
     self.assertTemplateUsed(response, 'notepad.html')
     context = response.context[0]
     self.assertTrue(context.has_key('form'))
     form = context.get('form')
     self.assertFalse(form.is_bound)
     self.assertFalse(form.errors)
     self.assertTrue(context.has_key('all_notes'))
     all_notes = context.get('all_notes')
     self.assertTrue(all_notes)
     self.assertEquals(len(all_notes), previous_count + 1)
     self.assertEquals(all_notes[0]['name'], form_data['name'])
Esempio n. 45
0
 def test_saving_personal_settings_by_student(self):
     self.login_as(email='*****@*****.**', password='******')
     data = {
         'name': 'Nanda.B',
         'new_password': '******',
         'slug': 'nandakishore'
     }
     response = self.client.post(
         path=url_reverse('users.views.view_save_personal_settings'),
         data=data,
         HTTP_X_REQUESTED_WITH='XMLHttpRequest')
     self.assertTrue(response)
     context = response.context
     self.assertTrue(context.has_key('personal_form'))
     personal_form = context.get('personal_form')
     self.assertFalse(personal_form.errors)
     userprofile = context.get('userprofile')
     self.assertTrue(userprofile.check_password(data['new_password']))
     from django.contrib.sites.models import Site
     self.assertEqual(
         userprofile.domain, ".".join([
             userprofile.slug,
             Site.objects.get(id=settings.SITE_ID).domain
         ]))
     self.assertEqual(userprofile.name, data['name'])
Esempio n. 46
0
 def test_edit_question_page_fresh_access_anonymous_user(self):
     question = Question.objects.latest()
     response = self.client.get(url_reverse('quest.views.view_edit_question', args=(question.id, question.slug)))
     self.assertRedirects(response,
                          expected_url='/accounts/login/?next=/questions/%s/%s/edit/' % (question.id, question.slug),
                          status_code=302,
                          target_status_code=200)
Esempio n. 47
0
def view_edit_question(request, question_id, question_slug, edit_question_template):
    userprofile = loggedin_userprofile(request)
    question = get_object_or_404(Question, id=int(question_id))
    if userprofile.is_my_question(question):
        asked_questions = list(userprofile.asked_questions)
        for question_info in asked_questions:
            if question_info['id'] == int(question_id):
                asked_questions.remove({'title':question.title,
                                        'id':int(question_id),
                                        'slug':question_slug})
        
        if request.method == 'GET':
            question_data = {'title':question.title,
                             'description':question.description,
                             'tags':",".join([tag['name'] for tag in question.tags.values('name')])}
            form = AskQuestionForm(question_data)
            return response(request, edit_question_template, {'form':form,
                                                              'question':question,
                                                              'previous_questions':asked_questions})
        form = AskQuestionForm(post_data(request))
        if form.is_valid():
            Question.objects.update_question(question,
                                             title=form.cleaned_data.get('title'),
                                             description=form.cleaned_data.get('description'),
                                             tags=form.cleaned_data.get('tags'))
            from quest.messages import QUESTION_UPDATED_SUCCESSFULLY
            messages.success(request, QUESTION_UPDATED_SUCCESSFULLY)
            return HttpResponseRedirect(redirect_to=url_reverse('quest.views.view_question', args=(question.id, question.slug)))
        return response(request, edit_question_template, {'form':form,
                                                          'question':question,
                                                          'previous_questions':asked_questions})
    raise Http404
Esempio n. 48
0
    def test_web_invite(self):
        try:
            contact_ids = []
            with mock.patch(
                    "contactstore.openinviter.get_contacts") as mock_importer:
                mock_importer.return_value = self.data_list
                imported_contacts = import_contacts(self.importing,
                                                    self.importing.email,
                                                    IMPORTER_PASSWORD)
                contact_ids += [contact["id"] for contact in imported_contacts]

            self.assertTrue(
                self.client.login(username=self.importing.username,
                                  password=IMPORTER_PASSWORD))

            invite_url = url_reverse("contactstore.views.create_invites")
            data = urllib.urlencode({"contact_id": contact_ids}, doseq=True)
            response = self.client.post(
                invite_url,
                data=data,
                content_type="application/x-www-form-urlencoded")
            self.assertEquals(response.status_code, 200)

            invites = EmailInvite.objects.filter(contact__id__in=contact_ids)
            self.assertEquals(len(invites), len(contact_ids))

        finally:
            pass
Esempio n. 49
0
    def test_web_import(self):
        "Assert that the web client can POST a username and password and get back the list of contacts"
        try:
            with mock.patch(
                    "contactstore.openinviter.get_contacts") as mock_importer:
                mock_importer.return_value = self.data_list
                self.assertTrue(
                    self.client.login(username=self.importing.username,
                                      password=IMPORTER_PASSWORD))

                import_url = url_reverse(
                    'contactstore.views.download_contacts')
                response = self.client.post(import_url, {
                    "email": self.importing.email,
                    "password": IMPORTER_PASSWORD
                })
                self.assertEquals(200, response.status_code)

                # Check we have all the users
                xpath = "//ul[@class='friends']//li[text()='%s']"
                assertXpath(response.content, xpath % (self.email1), html=True)
                assertXpath(response.content, xpath % (self.email2), html=True)
                assertXpath(response.content, xpath % (self.email3), html=True)

        finally:
            pass
Esempio n. 50
0
def view_edit_achievement(request, achievement_id, edit_achievement_template):
    userprofile = loggedin_userprofile(request)
    achievement = get_object_or_404(Achievement, id=int(achievement_id))
    if userprofile.is_my_achievement(achievement):
        achievements = list(userprofile.achievements)
        for achievment_info in achievements:
            if achievment_info['id'] == int(achievement_id):
                achievements.remove({'title':achievement.title,
                                        'id':int(achievement_id),
                                        'description':achievement.description})
                break
        if request.method == 'GET':
            form = AddAchievementForm({'title':achievement.title,
                                       'description':achievement.description})
            return response(request, edit_achievement_template, {'achievement':achievement,
                                                                 'form':form,
                                                                 'previous_achievements':achievements})
        form = AddAchievementForm(post_data(request))
        if form.is_valid():
            achievement.update(title=form.cleaned_data.get('title'),
                               description=form.cleaned_data.get('description'),)
            from users.messages import ACHIEVEMENT_UPDATED_SUCCESSFULLY
            messages.success(request, ACHIEVEMENT_UPDATED_SUCCESSFULLY)
            return HttpResponseRedirect(redirect_to=url_reverse('users.views.view_all_achievements'))
        return response(request, edit_achievement_template, {'achievement':achievement,
                                                             'form':form,
                                                             'previous_achievements':achievements})
    raise Http404
Esempio n. 51
0
    def test_web_invite(self):
        try:
            contact_ids = []
            with mock.patch("contactstore.openinviter.get_contacts") as mock_importer:
                mock_importer.return_value = self.data_list
                imported_contacts = import_contacts(
                    self.importing, 
                    self.importing.email, 
                    IMPORTER_PASSWORD
                    )
                contact_ids += [contact["id"] for contact in imported_contacts]

            self.assertTrue(self.client.login(
                    username=self.importing.username, 
                    password=IMPORTER_PASSWORD
                    ))

            invite_url = url_reverse("contactstore.views.create_invites")
            data = urllib.urlencode({
                    "contact_id": contact_ids
                    }, doseq=True)
            response = self.client.post(
                invite_url, 
                data=data, 
                content_type="application/x-www-form-urlencoded"
                )
            self.assertEquals(response.status_code, 200)
            
            invites = EmailInvite.objects.filter(contact__id__in=contact_ids)
            self.assertEquals(len(invites), len(contact_ids))

        finally:
            pass
Esempio n. 52
0
    def test_web_import(self):
        "Assert that the web client can POST a username and password and get back the list of contacts"
        try:
            with mock.patch("contactstore.openinviter.get_contacts") as mock_importer:
                mock_importer.return_value = self.data_list
                self.assertTrue(self.client.login(
                        username=self.importing.username, 
                        password=IMPORTER_PASSWORD
                        ))

                import_url = url_reverse('contactstore.views.download_contacts')
                response = self.client.post(import_url, {
                        "email": self.importing.email,
                        "password": IMPORTER_PASSWORD
                        })
                self.assertEquals(200, response.status_code)

                # Check we have all the users
                xpath = "//ul[@class='friends']//li[text()='%s']"
                assertXpath(
                    response.content, xpath % (self.email1),
                    html=True
                    )
                assertXpath(
                    response.content, xpath % (self.email2),
                    html=True
                    )
                assertXpath(
                    response.content, xpath % (self.email3),
                    html=True
                    )

        finally:
            pass
Esempio n. 53
0
def ajax_command(request, command):
    '''Executa os commands do django via ajax assincrono'''
    url = url_reverse('command', kwargs={'comando': command})
    context = {'comando': command,
               'url': url,
               'STATIC_URL': settings.STATIC_URL}
    return render_to_response("admin/ajax.html", context)
Esempio n. 54
0
 def test_editing_other_persons_achievement_content(self):
     self.login_as(email='*****@*****.**', password='******')
     achievement = Achievement.objects.latest()
     response = self.client.get(
         url_reverse('users.views.view_edit_achievement',
                     args=(achievement.id, )))
     self.assertTrue(response)
     self.assertEquals(response.status_code, 404)
Esempio n. 55
0
 def run_request(self, url_name: str, data: dict, method="post"):
     """Helper for request
     """
     cl = Client()
     return getattr(cl, method,
                    cl.get)(url_reverse("activity:{}".format(url_name)),
                            json.dumps(data),
                            content_type="application/json")