Esempio n. 1
0
def genericTest(username,title,contains,tags):
	try:
		#create a string describing what we're testing
		str=""
		if username<>"":
			str=str+"username: %s\n"%username
		else:str=str+"username: none\n"
		if title<>"":
			str=str+"title: %s\n"%title
		else:str=str+"title: none\n"
		if contains<>"":
			str=str+"contains: %s\n"%contains
		else:str=str+"contains: none\n"
		if tags<>"":
			str=str+"tags: %s\n"%tags
			if andor==1: str=str+" and"
			else: str=str+" or"
		else:str=str+"tags: none\n"
		
		print "Attempting Query Test of-\n",str

		session=idea_box.createAll()
		#run the test
		results= ideaQuery(username,title,contains,tags,session)
		
		for thing in results:
			#print '\nresult ',results.all().index(thing)
			print thing
		print "Number of results: ",len(results.all())
		session.close()
	except:
		print "error Query Test: ",str
		raise
	else:
		print "Query test: %s  COMPLETE"%str
Esempio n. 2
0
def tagWork():
	#changes an idea's tags, delete one, add one, edit one
	try:
		#create a new use with a randomly generated username
		print "Attempting body change"
		session=idea_box.createAll()
		username="******".lower()
		title="A great title".lower()
		tagtoAdd="NEWTAG"
		tagtoDelete="tag1"
		tagtoEdit="tag2"
		tagtoEditTo="supertag2"
		if idea_box.deleteTag(username,title,tagtoDelete,session):
			print "Tag %s deleted"%tagtoDelete
		else: print "Tag  not deleted"%tagtoDelete
		
		if idea_box.addTag(username,title,tagtoAdd,session):
			print "Tag %s added"%tagtoAdd
		else: print "Tag  not added"%tagtoAdd
		
		if (idea_box.deleteTag(username,title,tagtoEdit,session) and idea_box.addTag(username,title,tagtoEditTo,session)):
			print "Tag %s edited to %s"%(tagtoEdit,tagtoEditTo)
		else: print "Tag  not edited to %s"%(tagtoEdit,tagtoEditTo)
		session.close()
	except:
		print "Tags edited with error"
		raise
	else:
		print "Tag edits error free"
		outputIdea(username.lower(),title.lower())
Esempio n. 3
0
def ideaQuery(username,title,contains,tags,session=createAll()):
	###a function that can take in up to 3 search options and returns the results as a query object
	
	#user is the user who's ideas we're searching, it will be a User()
	#title is the title string we are searching for, it will include any %'s alreayd, liek will be used
	#tags comes in as a string separated by commas
	
	#this is built around an "and" type filter, should it be on "or" type filter
	
	results=session.query(Idea)
	
	if username<>"": 
		user=session.query(User).filter(User.username==username).all()[0]
		results=results.filter(Idea.user_id==user.id)	#if the search is user specificd
		
	if title<>"": results=results.filter(Idea.title.like("%"+title+"%")) #if a title is included
	
	if contains<>"": results=results.filter(Idea.idea.like("%"+contains+"%")) #if contains are included
	
	if tags<>"":#adjust tags so they are in an array of format [%tag%,%tag%...]
		tags="%"+tags+"%"
		tags=tags.replace(",","%,%")
		tags=tags.split(",")
		
		resArr=[]
		for thing in tags:
			#resArr is an array of queries, each one for tag
			resArr.append(results.filter(Idea.tags.like(thing)))
		#print resArr[0].all()[0]
		for thing in resArr:
			if resArr.index(thing)==0:results=thing
			else: results=results.union(thing)
	session.close()
	
	return results
Esempio n. 4
0
def createDB():
	#create the new database and session
	try:
		print "Attempting Database Creation"
		session=idea_box.createAll()
		session.close()
	except:
		print "Database creation Failed"
	else:
		print "Database create Complete"
Esempio n. 5
0
def changeToLowerUsers():
	#change all aspects of ideas to lower case
	session=idea_box.createAll()
	results=session.query(User).all()
	lNames=[thing.username.lower() for thing in results]
	for i in range(len(results)):
		results[i].username=lNames[i]
		session.add(results[i])
	session.commit()
	session.close
Esempio n. 6
0
def changeToLowerIdeas():
	#a function that changes all idea titles to lowercase
	session=idea_box.createAll()
	results=session.query(User).all()
	
	for user in results:
		for idea in user.ideas:
			idea.title=idea.title.lower()
			idea.tags=idea.tags.lower()
			
	session.commit()
	session.close
Esempio n. 7
0
def createTestDB():
	#a function to quickly fill out a DB in case of deletion, used for testing
	#2 users
	#each user has 10 ideas
	session=idea_box.createAll()
	session.add(User("Chuck","FUCKYOUGAYPASSWORDRULES"))
	session.add(User("Charles","MYPASSWORDISWITHINTHEDESIGNCONSTRAINTS"))
	session.commit()
	result=session.query(User)
	for thing in result:
		#each user
		for i in range(10):
			tags="tag"+str(13*i)+",tag"+str(17*i)+",tag"+str(19*i)
			session.add(Idea(thing.id,"Title"+str(i*13),"THIS IS BORING IDEA "+str(i*15),tags))
	session.commit()
	session.close()
Esempio n. 8
0
def deleteUser():
#deletes the user
	try:
		#create a new use with a randomly generated username
		print "Attempting user deletion"
		session=idea_box.createAll()
		username="******".lower()
		if idea_box.deleteUser(username,session):
			print "User Deleted"
		else: print "User not deleted"
		session.close()
	except:
		print "User deletion error"
		raise
	else:
		print "User Deletion error free"
		outputUser(username.lower())
Esempio n. 9
0
def changeBody():
	#changes an idea's body
	try:
		#create a new use with a randomly generated username
		print "Attempting body change"
		session=idea_box.createAll()
		username="******".lower()
		title="A great title".lower()
		if idea_box.changeIdea(username,title,"THIS IS A F*****G BODY",session):
			print "Body Changed"
		else: print "Body not changed"
		session.close()
	except:
		print "Body Change error"
		raise
	else:
		print "Body change error free"
		outputIdea(username.lower(),title.lower())
Esempio n. 10
0
def changeIdeaTitle():
	#changes an idea's title
	try:
		print "Attempting title change"
		session=idea_box.createAll()
		username="******".lower()
		title="A stupid Title".lower()
		newTitle="A great title".lower()
		if idea_box.changeTitle(username,title,newTitle,session):
			print "Title Changed"
		else: print "Title not changed"
		session.close()
	except:
		print "Title Chjange error"
		raise
	else:
		print "title change error free"
		outputIdea(username.lower(),newTitle.lower())
Esempio n. 11
0
def changeUname():
	#this ufnction changes the password
	try:
		#create a new use with a randomly generated username
		print "Attempting Username change"
		session=idea_box.createAll()
		username="******".lower()
		newUsername="******".lower()
		if idea_box.changeUsername(username,newUsername,session):
			print "Username changed"
		else: print "Username not changed"
		session.close()
	except:
		print "Username change error"
		raise
	else:
		print "Username change error free"
		outputUser(newUsername.lower())
Esempio n. 12
0
def changePW():
	#this function changes the password
	try:
		#create a new use with a randomly generated username
		print "Attempting Password change"
		session=idea_box.createAll()
		username="******".lower()
		password="******"
		if idea_box.changePassword(username,password,session):
			print "Password Changed"
		else: print "Password not changed"
		session.close()
	except:
		print "Password change error"
		raise
	else:
		print "Passowrd Change complete"
		outputUser(username.lower())
Esempio n. 13
0
def deleteIdea():
#deletes the idea
	try:
		#create a new use with a randomly generated username
		print "Attempting idea deletion"
		session=idea_box.createAll()
		username="******".lower()
		title="A great title".lower()
		if idea_box.deleteIdea(username,title,session):
			print "Idea Deleted"
		else: print "Idea not deleted"
		session.close()
	except:
		print "Body Change error"
		raise
	else:
		print "Body change error free"
		outputIdea(username.lower(),title.lower())
Esempio n. 14
0
def newUser():
	#this function creats a new user
	try:
		#create a new use with a randomly generated username
		print "Attempting New User Creation"
		session=idea_box.createAll()
		username="******"
		password="******"
		if idea_box.createUser(username,password,session):
			print "User Created"
		else: print "User not Created"
		session.close()
	except:
		print "User Creation Error"
		raise
	else:
		print "User Creation Error Free"
		outputUser(username.lower())
Esempio n. 15
0
def newIdea():
	#create a new idea for a user with no existing ideas
	try:
		#add an idea to a user with no existing ideas, if one does not exist, create a new user
		print "Attempting First Idea Addition"
		username="******"
		title="A stupid Title"
		#find a user with no ideas
		session=idea_box.createAll()		
		#the test user has no ideas, we will add a new one
		if idea_box.createIdea(username.lower(),title.lower(),"BODY","tag1,tag2",session):
			print "Idea Created"
		else: print "IDea not created"
		session.close()
		
	except:
		print "Idea Creation Failed"
		raise
	else:
		print "Idea Creation Successful"
		outputIdea(username.lower(),title.lower())
Esempio n. 16
0
def outputIdea(username,title):
	#prints out a specific idea
	session=idea_box.createAll()
	user=session.query(User).filter(User.username==username).all()[0]
	print session.query(Idea).filter(and_(Idea.user_id==user.id,Idea.title==title)).all()
Esempio n. 17
0
def outputUser(username):
	#prints out a user's data
	session=idea_box.createAll()
	print session.query(User).filter(User.username==username).all()
Esempio n. 18
0
print "----------------------"


# thought: this should be written as the inputs from a website
# this way the program doesn'thave to be re-written when
# the web interface is added
print "----------------------"


class test1Error(Exception):
    pass


print "Attempting User Querying"
try:
    session = idea_box.createAll()
    results = session.query(User)
    print "printing all users:"
    for thing in results:
        print "----------"
        print thing
    session.close
except:
    print "User Querying Failed"
    raise
else:
    print "User Querying Complete"


print "Attempting Idea Querying"
try:
Esempio n. 19
0
def userQuery():
	#returns a list of all users except admin
	session=createAll()
	results= session.query(User).filter(User.username!='admin')
	session.close()
	return results