def test_add_reply(self): msg = meeplib.get_message(self.msgId) new_message = meeplib.Message('reply', 'reply msg', msg.author, True) msg.add_reply(new_message) replies = msg.get_replies() assert len(replies) == 1
def print_messages(m, s, level): if(level != 0): s.append('<blockquote>') s.append('id: %d<br>' % (m.id,)) s.append('title: %s<br>' % (m.title)) s.append('message: %s<br>' % (m.post)) s.append('author: %s' % (m.author.username)) s.append(""" <form action = 'add' method = 'POST' style="margin:0;"> <input type = 'submit' value = 'Reply' /> <input type = 'hidden' name = 'pID' value = '%d' /> </form>""" % (m.id)) s.append(""" <form action = 'delete' method = 'POST' style="margin:0;"> <input type = 'submit' value = 'Delete Post' /> <input type = 'hidden' name = 'id' value = '%d' /> </form> <hr>""" % (m.id)) if(m.replies != []): print m.replies for r in m.replies: print_messages(meeplib.get_message(r), s, level + 1) s.append('</blockquote>') return s
def delete_message(self, environ, start_response): if self.username is None: headers = [('Content-type', 'text/html')] start_response("302 Found", headers) return ["You must be logged in to use this feature <p><a href='/login'>Log in</a><p><a href='/m/list'>Show messages</a>"] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) msgid = int(form['id'].value) msg = meeplib.get_message(msgid) messages = meeplib.get_all_messages() if msg.parent == -1: for child in messages: if child.parent == msgid: child.parent = -1 else: for child in messages: if child.parent == msgid: child.parent = msg.parent meeplib.delete_message(msg) with con: cur.execute("DELETE FROM Messages WHERE ID = ?", (msgid,)) con.commit() #meeplib.save() headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/list')) start_response("302 Found", headers) return ["message deleted"]
def list_search(self, environ, start_response): # print "ENVIRON", environ results=meeplib.get_search_results() s = [] #print "RESULTS" # print results for result in results: s.append(meeplib.get_message(result)) ## m=meeplib.get_message(result) ## s.append('id: %d<p>' % (m.id,)) ## s.append('title: %s<p>' % (m.title)) ## s.append('message: %s<p>' % (m.post)) ## try: ## s.append('author: %s<p>' % (m.author.username)) ## except: ## s.append('author: %s<p>' % (m.author)) ## s.append("<a href='/m/post_reply?id="+str(m.id)+"'>Reply</a><p>") ## if meeplib.has_replies(m.id): ## s.append('<dd>Replies:<hr />') ## for r in meeplib.get_replies(m.id): ## s.append('<dd>%s<p>' % (r)) ## s.append('</dd>') ## ## s.append('<hr>') #TODO MAKE IT DO SEARCH # s.append("<form action='delete_action' method='POST'>Delete a Message?<br> Message ID: <input type='text' name='id'><input type='submit'>Delete</form>") headers = [('Content-type', 'text/html')] start_response("200 OK", headers) # s.append("<form action='search_action' method='POST'>Search for Messages?<br> Message ID: <input type='text' name='text'><input type='submit'>Delete</form>") return [ render_page('search_messages.html', messages=s, meeplib=meeplib) ] return ["".join(s)]
def delete_message(id): try: id2 = meeplib.get_message(id); except: return rpc_settings.delete_message_failure meeplib.delete_message(id2) return rpc_settings.delete_message_success
def delete_message(id): try: id2 = meeplib.get_message(id) except: return rpc_settings.delete_message_failure meeplib.delete_message(id2) return rpc_settings.delete_message_success
def alter_message_action(self, environ, start_response): post = (environ.get('REQUEST_METHOD') == 'POST') if post: form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) else: form = parse_qs(environ['QUERY_STRING']) """ try: form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) #params = dict([part.split('=') for part in environ['QUERY_STRING'].split('&')]) #msgId = int(params['id']) except: headers = [('Content-type', 'text/html')] start_response("200 OK", headers) return ["Error Processing provided ID"] id = int(form['id'].value) action = form['bttnSubmit'].value """ print 'post %s' % (post, ) id = int(self.get_value(form, post, 'id', '')) action = self.get_value(form, post, 'bttnSubmit', '') msg = meeplib.get_message(id) error = False errorMsg = "" response = "200 OK" headers = [('Content-type', 'text/html')] u = self.getUser(environ) if u == None: error = True errorMsg = """You must be logged in to proceed.""" if msg == None: error = True errorMsg = """Message id: %d could not be found.""" % (id, ) elif action == "Delete": if msg.author.username == u.username: meeplib.delete_message(msg) response = "302 Found" headers.append(('Location', '/')) errorMsg = "message removed" else: errorMsg = "You cannot delete another user's post." elif action == "Reply": title = "" message = form['replyText'].value user = meeplib.get_user(u.username) new_message = meeplib.Message(title, message, user, True) msg.add_reply(new_message) response = "302 Found" headers.append(('Location', '/')) errorMsg = "message replied" start_response(response, headers) return [errorMsg]
def alter_message_action(self, environ, start_response): post = (environ.get('REQUEST_METHOD') == 'POST') if post: form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) else: form = parse_qs(environ['QUERY_STRING']) """ try: form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) #params = dict([part.split('=') for part in environ['QUERY_STRING'].split('&')]) #msgId = int(params['id']) except: headers = [('Content-type', 'text/html')] start_response("200 OK", headers) return ["Error Processing provided ID"] id = int(form['id'].value) action = form['bttnSubmit'].value """ print 'post %s' % (post,) id = int(self.get_value(form,post,'id','')) action = self.get_value(form,post,'bttnSubmit','') msg = meeplib.get_message(id) error = False errorMsg = "" response = "200 OK" headers = [('Content-type', 'text/html')] u = self.getUser(environ) if u == None: error = True errorMsg = """You must be logged in to proceed.""" if msg == None: error = True errorMsg = """Message id: %d could not be found.""" % (id,) elif action == "Delete": if msg.author.username == u.username: meeplib.delete_message(msg) response = "302 Found" headers.append(('Location', '/')) errorMsg = "message removed" else: errorMsg = "You cannot delete another user's post." elif action == "Reply": title = "" message = form['replyText'].value user = meeplib.get_user(u.username) new_message = meeplib.Message(title, message, user, True) msg.add_reply(new_message) response = "302 Found" headers.append(('Location', '/')) errorMsg = "message replied" start_response(response, headers) return [errorMsg]
def delete_message_action(self, environ, start_response): queryParams = cgi.parse_qs(environ['QUERY_STRING']) ID = queryParams['id'][0] ID = int(ID) meeplib.delete_message(meeplib.get_message(ID)) headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/list')) start_response("302 Found", headers) return ["message deleted"]
def remove_message(self, environ, start_response): print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) messageID = form['messageID'].value message = meeplib.get_message(int(messageID)) meeplib.delete_message(message) headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/list')) start_response("302 Found", headers) return ["message removed"]
def tearDown(self): m = meeplib.get_message(self.msgId) if m != None: meeplib.delete_message(m) l = len(meeplib.get_all_users()) meeplib.delete_user(meeplib.get_user(self.ux)) lafter = len(meeplib.get_all_users()) assert l > lafter
def add_message(self, environ, start_response): form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) pID = form['pID'].value headers = [('Content-type', 'text/html')] parentTitle = "" start_response("200 OK", headers) if(pID != '!'): parentTitle = "RE: " + meeplib.get_message(int(pID)).title return render_page('add_message.html', pID = pID, parentTitle = parentTitle);
def reply(self, environ, start_response): print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) id = int(form['id'].value) m = meeplib.get_message(id) headers = [('Content-type', 'text/html')] start_response("200 OK", headers) return [ render_page('reply.html', message=m, topic_id=-1) ]
def delete_message_action(self, environ, start_response): print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) id = int(form['id'].value) print id, ' A'; meeplib.delete_message(meeplib.get_message(id)) meeplib.delete_reply(id) meeplib.saveMSG() meeplib.saveREPLY() headers = [('Content-type', 'text/html')] headers.append(('Location', '/')) start_response("302 Found", headers) return ["message deleted"]
def reply(self, environ, start_response): print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) id = int(form['id'].value) m = meeplib.get_message(id) headers = [('Content-type', 'text/html')] start_response("200 OK", headers) return [render_page('reply.html', message=m, topic_id=-1)]
def delete_message_action(self, environ, start_response): print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) id = int(form['id'].value) print id, ' A' meeplib.delete_message(meeplib.get_message(id)) meeplib.delete_reply(id) meeplib.saveMSG() meeplib.saveREPLY() headers = [('Content-type', 'text/html')] headers.append(('Location', '/')) start_response("302 Found", headers) return ["message deleted"]
def delete_message_action(self, environ, start_response): print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) id_num = form['id_num'].value #print "form" #print (id,) id_number = int(id_num) meeplib.delete_message(meeplib.get_message(id_number)) headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/list')) start_response("302 Found", headers) return ["message deleted"]
def delete_message_topic(self, environ, start_response): print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) topic_id = int(form['topic_id'].value) id = int(form['id'].value) message = meeplib.get_message(id) topic = meeplib.get_topic(topic_id) topic.delete_message_from_topic(message) headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/topics/view?id=%d' % (topic_id, ))) start_response("302 Found", headers) return ["message deleted"]
def delete_message(self, environ, start_response): qString = cgi.parse_qs(environ['QUERY_STRING']) mId = qString.get('id', [''])[0] messageID = meeplib.get_message(int(mId)) mId= int(mId) meeplib.delete_message(messageID) with con: cur.execute("DELETE FROM messages WHERE id = (?)", (mId)) con.commit() headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/list')) start_response("302 Found", headers) return ["message deleted"]
def delete_message_topic(self, environ, start_response): print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) topic_id = int(form['topic_id'].value) id = int(form['id'].value) message = meeplib.get_message(id) topic = meeplib.get_topic(topic_id) topic.delete_message_from_topic(message) headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/topics/view?id=%d' % (topic_id,))) start_response("302 Found", headers) return ["message deleted"]
def reply_message_action(self, environ, start_response): #Reply Function!!! print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) parent_id = form['parent_id'].value reply = form['replymsg'].value parent_id = int(parent_id) #adds reply to designated message message = meeplib.get_message(parent_id) message.add_reply(reply) headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/list')) start_response("302 Found", headers) return ["reply added"]
def reply_topic(self, environ, start_response): cookie = environ.get('HTTP_COOKIE', '') username = meepcookie.load_username(cookie) print environ['wsgi.input'] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) id = int(form['id'].value) topic_id = int(form['topic_id'].value) m = meeplib.get_message(id) headers = [('Content-type', 'text/html')] start_response("200 OK", headers) return [ render_page('reply.html', message=m, topic_id=topic_id, username=username) ]
def list_search(self, environ, start_response): results=meeplib.get_search_results() s = [] for result in results: s.append(meeplib.get_message(result)) # replies = meeplib.get_replies(m.id) # if (replies!=-1): # s.append('<div style="padding-left: 50px;">Replies:</div><br />') # for r in replies: # s.append(""" <div style="padding-left: 70px;"> %s</div><p>""" % r) # s.append('<hr>') headers = [('Content-type', 'text/html')] start_response("200 OK", headers) return [ render_page('search_results.html', messages=s) ]
def delete_message_action(self, environ, start_response): form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) #Get the message messageId = form['mid'].value message = meeplib.get_message(int(messageId)) #Delete the message from the topic topicId = form['tid'].value topic = meeplib.get_topic(int(topicId)) topic.delete_message_from_topic(message) #Delete the message altogether meeplib.delete_message(message) headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/list_topics')) start_response("302 Found", headers) return ["message deleted"]
def list_messages(self, environ, start_response): messages = meeplib.get_all_messages() s = [] listed = set() for m in messages: if m.id not in listed: s.extend(retrieve_message(m)) curr_id = m.id deepest_node = m indent = 0 while True: for child in messages: if child.parent == curr_id and child.id not in listed: indent+=1 for x in xrange(0, indent): s.append('<ul>') s.extend(retrieve_message(child)) for y in xrange(0, indent): s.append('</ul>') listed.add(child.id) curr_id = child.id deepest_node = child curr_id = deepest_node.parent if curr_id == -1: break indent -= 1 deepest_node = meeplib.get_message(curr_id) listed.clear() s.append("<a href='../../'>index</a>") headers = [('Content-type', 'text/html')] start_response("200 OK", headers) print("".join(s)) return [str("".join(s))]
def list_messages(self, environ, start_response): messages = meeplib.get_all_messages() s = [] listed = set() for m in messages: if m.id not in listed: s.extend(retrieve_message(m)) curr_id = m.id deepest_node = m indent = 0 while True: for child in messages: if child.parent == curr_id and child.id not in listed: indent += 1 for x in xrange(0, indent): s.append('<ul>') s.extend(retrieve_message(child)) for y in xrange(0, indent): s.append('</ul>') listed.add(child.id) curr_id = child.id deepest_node = child curr_id = deepest_node.parent if curr_id == -1: break indent -= 1 deepest_node = meeplib.get_message(curr_id) listed.clear() s.append("<a href='../../'>index</a>") headers = [('Content-type', 'text/html')] start_response("200 OK", headers) print("".join(s)) return [str("".join(s))]
def delete_message(self, environ, start_response): if self.username is None: headers = [('Content-type', 'text/html')] start_response("302 Found", headers) return [ "You must be logged in to use this feature <p><a href='/login'>Log in</a><p><a href='/m/list'>Show messages</a>" ] form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ) msgid = int(form['id'].value) msg = meeplib.get_message(msgid) messages = meeplib.get_all_messages() if msg.parent == -1: for child in messages: if child.parent == msgid: child.parent = -1 else: for child in messages: if child.parent == msgid: child.parent = msg.parent meeplib.delete_message(msg) with con: cur.execute("DELETE FROM Messages WHERE ID = ?", (msgid, )) con.commit() #meeplib.save() headers = [('Content-type', 'text/html')] headers.append(('Location', '/m/list')) start_response("302 Found", headers) return ["message deleted"]
def list_search(self, environ, start_response): # print "ENVIRON", environ results = meeplib.get_search_results() s = [] #print "RESULTS" # print results for result in results: s.append(meeplib.get_message(result)) ## m=meeplib.get_message(result) ## s.append('id: %d<p>' % (m.id,)) ## s.append('title: %s<p>' % (m.title)) ## s.append('message: %s<p>' % (m.post)) ## try: ## s.append('author: %s<p>' % (m.author.username)) ## except: ## s.append('author: %s<p>' % (m.author)) ## s.append("<a href='/m/post_reply?id="+str(m.id)+"'>Reply</a><p>") ## if meeplib.has_replies(m.id): ## s.append('<dd>Replies:<hr />') ## for r in meeplib.get_replies(m.id): ## s.append('<dd>%s<p>' % (r)) ## s.append('</dd>') ## ## s.append('<hr>') #TODO MAKE IT DO SEARCH # s.append("<form action='delete_action' method='POST'>Delete a Message?<br> Message ID: <input type='text' name='id'><input type='submit'>Delete</form>") headers = [('Content-type', 'text/html')] start_response("200 OK", headers) # s.append("<form action='search_action' method='POST'>Search for Messages?<br> Message ID: <input type='text' name='text'><input type='submit'>Delete</form>") return [ render_page('search_messages.html', messages=s, meeplib=meeplib) ] return ["".join(s)]
def test_delete_message(self): msg = meeplib.get_message(self.msgId) meeplib.delete_message(msg) print(meeplib.get_message(self.msgId), ) assert meeplib.get_message(self.msgId) == None
def test_for_message_existence(self): assert meeplib.get_message(self.msgId) != None
def test_delete_message(self): msg = meeplib.get_message(self.msgId) meeplib.delete_message(msg) print (meeplib.get_message(self.msgId),) assert meeplib.get_message(self.msgId) == None
def test_message_ownership(self): assert meeplib.get_message(self.msgId).author == meeplib.get_user( self.ux)
def test_message_ownership(self): assert meeplib.get_message(self.msgId).author == meeplib.get_user(self.ux)