def intercept(): ''' This function will be invoked when a dynamic request comes. It firstly gets request path from evironment variables, then invokes corresponding functions according to request path. ''' env = os.environ # Get request uri from environment variables uri = env['REQUEST_URI'] # Get request path, leaving out query string path = uri.split('?', 1)[0] # Construct HTTPResquest object req = request.HTTPRequest() # Invoke corresponding functions according to request path if path == '/register': user.register(req) elif path == '/login': user.login(req) elif path == '/logout': user.logout(req) elif path == '/info': user.showinfo(req) elif path == '/upload': avatar.upload_avatar(req) elif re.compile(r'/avatar/(?P<md5>[\w]+)').match(path): # Get 32-char long md5, leaving out file ext or other chars. # If the length of md5 part is less than 32, get all the part. md5 = path[8:40] avatar.back_avatar(md5) else: util.msg_redirect('/static/homepage.html', 'unsupported url')
def intercept(): ''' This function will be invoked when a dynamic request comes. It firstly gets request path from evironment variables, then invokes corresponding functions according to request path. ''' env = os.environ # Get request uri from environment variables uri = env['REQUEST_URI'] # Get request path, leaving out query string path = uri.split('?', 1)[0] # Construct HTTPResquest object req = request.HTTPRequest() # Invoke corresponding functions according to request path if path == '/register': user.register(req) elif path == '/login': user.login(req) elif path == '/logout': user.logout(req) elif path == '/info': user.showinfo(req) elif path == '/upload': avatar.upload_avatar(req) elif re.compile(r'/avatar/(?P<md5>[\w]+)').match(path): # Get 32-char long md5, leaving out file ext or other chars. # If the length of md5 part is less than 32, get all the part. md5 = path[8:40] avatar.back_avatar(md5) else: util.msg_redirect('/static/homepage.html','unsupported url')
def test_schema_change_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', SCHEMA_VIEW) add_permission(self, 'alice', SCHEMA_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath( "//nav[@class='menu']/ul/li[3]/a").first.click() self.browser.find_by_xpath("//fieldset[@class='module aligned wide model']/h2/a").first.click() self.browser.find_by_xpath( "//input[@id='id_name']").first.fill("Alice's type") self.browser.find_by_xpath("//span[@class='buttonLinkOption buttonLinkLeft']/input[@type='submit']").first.click() text = self.browser.find_by_xpath( "//fieldset[@class='module aligned wide model']/h2/a").first.value self.assertEqual(text, "Alice's type") Graph.objects.get(name="Bob's graph").destroy()
def test_data_delete_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) add_permission(self, 'alice', DATA_CHANGE) add_permission(self, 'alice', DATA_DELETE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath("//a[@id='dataMenu']").first.click() self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']").first.click() self.browser.find_by_xpath("//td/a[@title='Edit node']").first.click() self.browser.find_by_xpath("//span[@class='buttonLinkOption buttonLinkRight']/a[text()='Remove']").first.click() self.browser.choose('confirm', '1') self.browser.find_by_xpath("//input[@type='submit']").first.click() text = self.browser.find_by_xpath( "//div[@id='content2']/div[@class='indent']").first.value self.assertNotEqual(text.find('Nodes: 0'), -1) Graph.objects.get(name="Bob's graph").destroy()
def test_data_change_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) add_permission(self, 'alice', DATA_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath("//a[@id='dataMenu']").first.click() self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']").first.click() self.browser.find_by_xpath("//td/a[@title='Edit node']").first.click() self.browser.find_by_xpath( "//input[@id='id_Name']").first.fill("Alice's node") self.browser.find_by_xpath("//input[@type='submit']").first.click() text = self.browser.find_by_xpath("//table[@id='content_table']/tbody/tr/td")[1].value self.assertEqual(text, "Alice's node") Graph.objects.get(name="Bob's graph").destroy()
def logout(): authtoken = json.loads(request.headers.get("auth-token")) if user.authenticated(authtoken): user.logout(authtoken) return "",201 else: return error_response("Invalid auth_token",401)
def test_data_delete_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) add_permission(self, 'alice', DATA_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() spin_click( self.browser.find_by_xpath("//a[@id='dataMenu']").first, self.browser.find_by_xpath( "//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']" ).first) self.browser.find_by_xpath("//td/a[@title='Edit node']").first.click() self.browser.find_by_xpath( "//span[@class='buttonLinkOption buttonLinkRight']/a[text()='Remove']" ).first.click() text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value spin_assert(lambda: self.assertNotEqual(text.find("403"), -1)) Graph.objects.get(name="Bob's graph").destroy()
def test_graph_change_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) self.browser.find_by_xpath( "//div[@class='dashboard-graphs']/div/div/span[@class='graph-title']/a" ).first.click() add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', GRAPH_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath( "//div[@class='graph-item']/span[@class='graph-title']/a" ).first.click() self.browser.find_by_xpath("//input[@id='id_name']").first.fill( "Alice's graph") self.browser.find_by_xpath( "//form/input[@type='submit']").first.click() text = self.browser.find_by_xpath( "//div[@class='graph-item']/span[@class='graph-title']/a" ).first.value spin_assert(lambda: self.assertEqual(text, "Alice's graph")) Graph.objects.get(name="Alice's graph").destroy()
def test_graph_view_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) self.browser.find_by_xpath("//div[@class='dashboard-graphs']/div/div/span[@class='graph-title']/a").first.click() logout(self) signin(self, 'alice', 'alice_secret') self.browser.visit(self.live_server_url + '/graphs/bobs-graph/') text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value self.assertNotEqual(text.find("403"), -1) Graph.objects.get(name="Bob's graph").destroy()
def test_graph_view_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) self.browser.find_by_xpath("//div[@class='dashboard-graphs']/div/div/span[@class='graph-title']/a").first.click() add_permission(self, 'alice', CREATE_COLLAB) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() text = self.browser.find_by_xpath("//div[@class='graph-item']/span[@class='graph-title']/a").first.value self.assertEqual(text, "Bob's graph") Graph.objects.get(name="Bob's graph").destroy()
def test_schema_view_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) add_permission(self, 'alice', CREATE_COLLAB) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath( "//nav[@class='menu']/ul/li[3]/a").first.click() text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value self.assertNotEqual(text.find("403"), -1) Graph.objects.get(name="Bob's graph").destroy()
def test_data_view_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() spin_click(self.browser.find_by_xpath("//a[@id='dataMenu']").first, self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']").first) text = self.browser.find_by_xpath("//table[@id='content_table']/tbody/tr/td")[1].value spin_assert(lambda: self.assertEqual(text, "Bob's node")) Graph.objects.get(name="Bob's graph").destroy()
def test_schema_view_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', SCHEMA_VIEW) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath( "//nav[@class='menu']/ul/li[3]/a").first.click() text = self.browser.find_by_xpath( "//fieldset[@class='module aligned wide model']/h2/a").first.value self.assertEqual(text, "Bob's type") Graph.objects.get(name="Bob's graph").destroy()
def test_data_add_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath("//a[@id='dataMenu']").first.click() self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption new']").first.click() text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value self.assertNotEqual(text.find("403"), -1) Graph.objects.get(name="Bob's graph").destroy()
def next_verify(request): if 'next_verify' in request.session and request.session['next_verify'] ==2: del(request.session['next_verify']) print 'success1' #验证成功,进入下一题 return next(request) else: u=User.objects.get(id=request.session['uid']) u.forbidden=1 u.save() import user as userview return userview.logout(request)
def test_graph_change_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) self.browser.find_by_xpath("//div[@class='dashboard-graphs']/div/div/span[@class='graph-title']/a").first.click() add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', GRAPH_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath("//div[@class='graph-item']/span[@class='graph-title']/a").first.click() self.browser.find_by_xpath( "//input[@id='id_name']").first.fill("Alice's graph") self.browser.find_by_xpath( "//form/input[@type='submit']").first.click() text = self.browser.find_by_xpath("//div[@class='graph-item']/span[@class='graph-title']/a").first.value self.assertEqual(text, "Alice's graph") Graph.objects.get(name="Alice's graph").destroy()
def next(request): #游客只能浏览前50题 if request.session['uid'] ==0 and request.session['qid'] >=50: return HR(u'亲,请先登录,游客只能浏览前50题!') #邮箱未认证用户只能浏览前500题 if request.session['degree'] <=1 and request.session['qid'] >=500: return HR(u'亲,请先完成邮箱认证,邮箱未认证用户只能浏览前500题!') # 2级用户只能浏览前2000题 if request.session['degree'] <=2 and request.session['qid'] >=2000: return HR(u'亲,目前2级用户只能浏览前2000题!') #验证是否有爬虫 if 'next_verify' in request.session and request.session['next_verify']==2: del(request.session['next_verify']) u=User.objects.get(id=request.session['uid']) u.forbidden=1 u.save() import user as userview userview.logout(request) return HR(u'亲,不要爬我的小站了!') #如果存在用户登录 degree > 0 ,即非游客 if request.session['degree']: user= User.objects.filter(id=request.session['uid'])[0] #自增下一题 user.qid += 1 #同步session request.session['qid'] = user.qid user.save() else: #如果为游客状态 session['qid'] 自增1 request.session['qid'] += 1 return HttpResponseRedirect('/showQuestion')
def test_data_delete_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) add_permission(self, 'alice', DATA_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() spin_click(self.browser.find_by_xpath("//a[@id='dataMenu']").first, self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']").first) self.browser.find_by_xpath("//td/a[@title='Edit node']").first.click() self.browser.find_by_xpath("//span[@class='buttonLinkOption buttonLinkRight']/a[text()='Remove']").first.click() text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value spin_assert(lambda: self.assertNotEqual(text.find("403"), -1)) Graph.objects.get(name="Bob's graph").destroy()
def tearDown(self): logout(self) self.browser.quit()
def logout(): user.logout() return redirect("/")
def logout(self): logout()
def tearDown(self): logout(self) self.browser.quit() Graph.objects.get(name="Bob's graph").destroy()
def logout_page(): return user.logout()
def logout(): return user.logout()