def post(self): logged_user = users.get_current_user() if not logged_user: return self.write("Please login before") title_value = self.request.get("title") text_value = self.request.get("text") if "<script>" in text_value: return self.write("No Hack") if not text_value: return self.write("Required") if not title_value: return self.write("Required") new_topic = Topic( title=title_value, content=text_value, author_email=logged_user.email(), ) new_topic.put() return self.redirect_to("topic-detail", topicid=new_topic.key.id())
def add_topic(): title = request.form['Title'] link = request.form['URL'] category = request.form['Categories'] topic = Topic(name=title, link=link, category_id=category) status = topic.create_topic() return redirect(url_for('.main', messages=status))
def test_topic_delete_handler(self): # POST topic = Topic(title="Topic to delete", content="Some text in the topic", author_email="*****@*****.**") topic.put() # save topic in database topic_query_1 = Topic.query().get() self.assertTrue( topic_query_1) # assert that topic exists in a database csrf_token = str(uuid.uuid4()) # create a CSRF token memcache.add(key=csrf_token, value=True, time=600) # save token to memcache params = {"csrf_token": csrf_token} post = self.testapp.post('/topic/{}/delete'.format(topic.key.id()), params) # do a GET request self.assertEqual( post.status_int, 302 ) # when topic is deleted, handler redirects to main page (302 == redirect) topic_query_2 = Topic.query().get() self.assertTrue(topic_query_2.deleted ) # assert that "deleted" field is set to True
def test_post_comment_delete_handler(self): #POST topic = Topic(title="New topic", content="Content of new topic!", author_email='*****@*****.**') topic.put() topic_query = Topic.query().get() self.assertTrue(topic_query) comment = Comment.create("That is my comment!", '*****@*****.**', int(topic.key.id()), topic) comment_query = Comment.query().get() self.assertTrue(comment_query) csrf_token = str(uuid.uuid4()) memcache.add(key=csrf_token, value='*****@*****.**', time=600) params = {"csrf_token": csrf_token} post = self.testapp.post('/topic/details/{0}/deleteComment'.format( comment.key.id()), params=params) self.assertEqual(post.status_int, 302) comment_query_deleted = Comment.query().get() self.assertTrue(comment_query_deleted.deleted)
def CreateTopic(value, note_id): new_topic = Topic( value = value, note_id = note_id ) db.session.add(new_topic) db.session.commit()
def post(self): logged_user = users.get_current_user() if not logged_user: return self.write("Please, login first") csrf_token = self.request.get('csrf-token') mem_token = memcache.get(key=csrf_token) if not mem_token or mem_token != logged_user.email(): return self.write("This website is protected against CSRF") title_value = self.request.get("title") text_value = self.request.get("text") if not title_value: return self.write("Title field is requiered") if not text_value: return self.write("Text field is requiered") new_topic = Topic( title=title_value, content=text_value, author_email=logged_user.email(), ) new_topic.put() return self.redirect_to("topic-details", topic_id=new_topic.key.id())
def setUp(self): app = webapp2.WSGIApplication([ webapp2.Route('/new_comment/<topic_id:\d+>', NewComment), webapp2.Route('/comment/<comment_id:\d+>/delete', CommentDelete), ]) self.testapp = webtest.TestApp(app) self.testbed = testbed.Testbed() self.testbed.activate() """ Uncomment the stubs that you need to run tests. """ self.testbed.init_datastore_v3_stub() self.testbed.init_memcache_stub() # self.testbed.init_mail_stub() # self.testbed.init_taskqueue_stub() self.testbed.init_user_stub() # ... """ Uncomment if you need user (Google Login) and if this user needs to be admin. """ os.environ['USER_EMAIL'] = '*****@*****.**' # os.environ['USER_IS_ADMIN'] = '1' test_user = User(email="*****@*****.**", is_active=True) test_user.put() test_topic = Topic(title="test topic", content="test", user_email="*****@*****.**") test_topic.put()
def __init__(self, basepath, name): self.name = name self.fqdn = '{}/{}'.format(basepath, name) self.topics = list() for file in listdir(self.fqdn): self.topics.append(Topic(self.fqdn, file))
def test_topic_details_handler(self): topic = Topic(title="Test topic", content="Random text content", author_email="*****@*****.**") topic.put() get_response = self.testapp.get('/topic/{}'.format(topic.key.id())) self.assertEqual(get_response.status_int, 200)
def edit_topic(): title = request.form['Title'] link = request.form['URL'] category_id = request.form['Categories'] topic_id = request.form['id'] Topic(topic_id=topic_id, name=title, link=link, category_id=category_id).update_topic() return redirect("/god")
def index(): user = current_user() board_id = int(request.args.get('board_id', 0)) if board_id: print('is board id :{}'.format(board_id)) ms = Topic().find_all(board_id=board_id) else: print('not board id: {}'.format(board_id)) ms = Topic().all() bs = Board.all() token = str(uuid.uuid4()) csrf_tokens.add(token) return render_template("topic/index.html", ms=ms, bs=bs, user=user, token=token)
def test_topic_handler(self): topic = Topic(title="Test title", content="Test content", user_email="*****@*****.**") topic.put() response = self.testapp.get('/topic/{}'.format(topic.key.id())) self.assertEqual(response.status_int, 200)
def test_topic_detail_handler(self): topic = Topic(title="Another topic", content="Some text in the topic", author_email="*****@*****.**") topic.put() get = self.testapp.get('/topic/{}'.format( topic.key.id())) # do a GET request self.assertEqual(get.status_int, 200)
def post(self): user = users.get_current_user() if not user: return self.write("You're not logged in.") title = cgi.escape(self.request.get("title")) text = cgi.escape(self.request.get("text")) new_topic = Topic(title=title, content=text, author_email=user.email()) new_topic.put() return self.redirect_to("topic-details", topic_id = new_topic.key.id())
def add_from_node(): form = request.form t = Topic(form) if t.validate(): t.user = current_user._get_current_object() t.save() flash(u'创建新主题成功') return redirect(url_for('topic.node', id=t.node.id)) return redirect(url_for('topic.index'))
def select_all(): topics = [] sql = "SELECT * FROM topics" results = run_sql(sql) for result in results: topic = Topic(result["name"], result["id"]) topics.append(topic) return topics
def post(self): user = users.get_current_user() title = cgi.escape(self.request.get("title")) text = cgi.escape(self.request.get("text")) new_topic = Topic(title=title, content=text, user_email=user.email()) new_topic.put() return self.redirect_to("topic-details", topic_id=new_topic.key.id())
def add(): form = request.form t = Topic(form) if t.validate(): t.user = current_user._get_current_object() t.save() flash(u'发布成功') return redirect(url_for('topic.topic', id=t.id)) else: flash(u'标题不能为空') return redirect(url_for('topic.add_view'))
def test_topic_details_handler(self): # GET topic = Topic( title="Another topic", content="Some text in the topic", author_email="*****@*****.**", author_avatar="https://s30.postimg.org/6mdag8cip/ninja.png") topic.put() get = self.testapp.get('/topic/{}'.format( topic.key.id())) # do a GET request self.assertEqual(get.status_int, 200)
def create_new_chrip(): if request.method == 'GET': return render_template('new_blog.html') else: title = request.form['title'] description = request.form['description'] user = User.get_by_username(session['username']) new_blog = Topic(user.username, title, description, user._id) new_blog.save_to_mongo() flash("Posted Successfully", category='success') return make_response(user_chrips(user._id))
def new_topic(): if request.method == 'POST': if "title" not in request.get_json(): return ClientError(301, 'Invalid entry') title = request.get_json()['title'] if title.strip() == "" or storage.get_topic_by_title(title): return ClientError(409, 'Topic already exists') description = request.get_json( )['description'] if "description" in request.get_json() else "" topic = Topic(**{'title': title, 'description': description}) topic.save() return jsonify({'status_code': 1, 'id': topic.id})
def post(self): user = users.get_current_user() if not user: return self.write("Please login.") title = cgi.escape(self.request.get("title")) text = cgi.escape(self.request.get("text")) new_topic = Topic(title=title, content=text, author_email=user.email()) new_topic.put() return self.write("Topic created successfully.")
def created_topic(user_id): k = 'created_topic_{}'.format(user_id) if cache.exists(k): v = cache.get(k) ts = json.loads(v) ts = [Topic(**t) for t in ts] return ts else: ts = Topic.all(user_id=user_id) v = json.dumps([t.json() for t in ts]) cache.set(k, v) return ts
def post(self): user = users.get_current_user() if not user: return self.write("You are not logged in.") title = self.request.get("title") text = self.request.get("text") new_topic = Topic(title=title, content=text, author_email=user.email()) new_topic.put() return self.redirect("/")
def create_fake_topic_deleted(self, title="New Test Topic Deleted", content="This is test.topic", deleted=True): test_author = self.create_fake_admin() topic = Topic(title=title, content=content, author_email=test_author.email, deleted=deleted) topic.put() return topic
def post(self): user = users.get_current_user() if not user: return self.write("Please login before you're allowed to post a topic.") title = self.request.get("title") text = self.request.get("text") new_topic = Topic(title=title, content=text, author_email=user.email()) new_topic.put() # put() saves the object in Datastore return self.redirect_to("topic-details", topic_id=new_topic.key.id())
def post(self): csrf_token = self.request.get('csrf-token') if not memcache.get(csrf_token): return self.write("CSRF NAPAD") title = cgi.escape(self.request.get('title')) text = cgi.escape(self.request.get('text')) email = users.get_current_user().email() topic = Topic(title=title, content=text, user_email=email) topic.put() return self.redirect('/')
def test_subscribe_hottest_topic_cron_handler(self): # GET topic = Topic(title = "New topic", content = "Content of new topic!", author_email = '*****@*****.**', created = datetime.datetime.now() - datetime.timedelta(days = 2), updated = datetime.datetime.now() - datetime.timedelta(hours = 12), deleted = True) topic.put() topic_query = Topic.query().get() self.assertTrue(topic_query) get = self.testapp.get('/cron/email-subscribe') self.assertEqual(get.status_int, 200)
def edit(id): form = request.form t = Topic(form) topic = Model.query.get(id) if topic is not None and t.validate() and ( current_user == topic.user or current_user.is_administrator()): topic.title = t.title topic.content = t.content topic.node_id = t.node_id topic.save() flash(u'更改成功') return redirect(url_for('topic.topic', id=id)) else: flash(u'标题不能为空') return redirect(url_for('topic.edit_view', id=id))
def post(self): user = users.get_current_user() if not user: return self.write("You have to login before post a topic!") title = self.request.get("title") content = self.request.get("text") new_topic = Topic(title=title, content=content, author_email=user.email()) new_topic.put() return self.write("You have sucessfully created new topic!")