def get(self): received = 0 _token = self.request.get("token").encode('ascii', 'ignore') eventid = self.request.get("eventid").encode('ascii', 'ignore') attend_func = self.request.get("isAttend").encode('ascii', 'ignore') if eventid == "": received = -1 self.post(received) elif id == "": received = -2 self.post(received) else: mydb = DAL() try: int_token = int(_token) if mydb.check_token(int_token) is True: #check if the token is valid if attend_func == "true": self.post(mydb.attend(int_token, int(eventid))) elif attend_func == "false": self.post(mydb.unattend(int_token, int(eventid))) else: self.post(-3) return except ValueError: self.post(3)
def get(self): received = 0 _token = self.request.get("token").encode('ascii', 'ignore') eventid = self.request.get("eventid").encode('ascii', 'ignore') attend_func = self.request.get("isAttend").encode('ascii', 'ignore') if eventid == "": received = -1 self.post(received) elif id == "": received = -2 self.post(received) else: mydb = DAL() try: int_token = int(_token) if mydb.check_token( int_token) is True: #check if the token is valid if attend_func == "true": self.post(mydb.attend(int_token, int(eventid))) elif attend_func == "false": self.post(mydb.unattend(int_token, int(eventid))) else: self.post(-3) return except ValueError: self.post(3)
def get(self): received = False _id = self.request.get("id").encode('ascii', 'ignore') token = self.request.get("token").encode('ascii', 'ignore') if _id == "" or token == "": received = False else: fb = fb_logic() if fb.test_id(_id) is False: received = 2 else: fb = fb_logic() if fb.validate_fb_login(_id, access_token=token) is not False: mydb = DAL() user = fb.validate_fb_login(_id, access_token=token) logging.info(user) try: email = user["email"].encode('ascii', 'ignore') except: email = None received = mydb.set_user_details( fb_id=int(_id), name=user['first_name'].encode('ascii', 'ignore'), last_name=user['last_name'].encode('ascii', 'ignore'), email=email) logging.info("received is " + str(received)) else: received = -1 logging.info(received) self.post(received)
def get(self): email = self.request.get("email") #.encode('ascii', 'ignore') hashed_password = self.request.get("password") first_name = self.request.get("firstname") last_name = self.request.get("lastname") self.mydb = DAL() if email is "" or hashed_password is "": self.post(-1) elif email is not "" and hashed_password is not "": isvalid = isValidEmailAddress(email) logging.info(isvalid) if not isvalid: self.post(-4) else: if first_name is "" and last_name is "": self.login(email, hashed_password) else: if first_name is not "" and last_name is "": self.post(-3) elif first_name is "" and last_name is not "": self.post(-2) else: self.register(email, hashed_password, first_name, last_name)
def get(self): received = False _id = self.request.get("id").encode('ascii', 'ignore') token = self.request.get("token").encode('ascii', 'ignore') if _id == "" or token == "": received = False else: fb = fb_logic() if fb.test_id(_id) is False: received = 2 else: fb = fb_logic() if fb.validate_fb_login(_id, access_token=token) is not False: mydb = DAL() user = fb.validate_fb_login(_id, access_token=token) logging.info(user) try: email = user["email"].encode('ascii', 'ignore') except: email = None received = mydb.set_user_details(fb_id=int(_id), name=user['first_name'].encode('ascii', 'ignore'), last_name=user['last_name'].encode('ascii', 'ignore'), email=email) logging.info("received is "+ str(received)) else: received = -1 logging.info(received) self.post(received)
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub(User) self.testbed.init_memcache_stub() ndb.get_context().clear_cache() self.mydb = DAL() self.obj = SearchEventsUsingAPI()
def get(self): mydb = DAL() token = self.request.get("token") if token is "": self.post(-1) else: try: json_response = mydb.get_user_by_token(int(token)) self.post(json_response) except ValueError: self.post(2)
def get(self): token = self.request.get("token").encode('ascii', 'ignore') if token == "": self.post(False) else: mydb = DAL() try: int_token = int(token) if mydb.check_token(int_token) is not False: reply_json = mydb.get_all_user_events(int_token) self.post(reply_json) else: self.post(0) except ValueError: self.post(2)
def setUp(self): # First, create an instance of the Testbed class. self.testbed = testbed.Testbed() # Then activate the testbed, which prepares the service stubs for use. self.testbed.activate() # Next, declare which service stubs you want to use. self.testbed.init_datastore_v3_stub(User) self.testbed.init_memcache_stub() # Clear ndb's in-context cache between tests. # This prevents data from leaking between tests. # Alternatively, you could disable caching by # using ndb.get_context().set_cache_policy(False) ndb.get_context().clear_cache() self.mydb = DAL() self.obj = SearchEventsUsingAPI()
def get(self): firstname = self.request.get("firstname") lastname = self.request.get("lastname") email = self.request.get("email") token = False if firstname == "" or lastname == "" or email == "": token = -1 else: mydb = DAL() logging.info("entring user name:") logging.info(firstname) logging.info(lastname) logging.info(email) token = mydb.google_login(email, firstname, lastname) self.post(token)
def get(self): firstname = self.request.get("firstname") lastname = self.request.get("lastname") email = self.request.get("email") token = False if firstname == "" or lastname == "" or email == "": token = -1 else: mydb =DAL() logging.info("entring user name:") logging.info(firstname) logging.info(lastname) logging.info(email) token = mydb.google_login(email, firstname,lastname) self.post(token)
class APIAttendeesHandler(webapp2.RequestHandler): mydb = DAL() def get(self): reply = -1 received = False eventid = self.request.get("eventid").encode('ascii', 'ignore') token = self.request.get("token").encode('ascii', 'ignore') fb_token = self.request.get("fbtoken").encode('ascii', 'ignore') if eventid == "" or token == "": self.post(-1) else: if fb_token == "": fb_token = None try: int_token = int(token) if self.mydb.check_token(int_token) is not False: self.post( self.mydb.get_attendings(int(eventid), int_token, fb_token)) else: self.post(2) except ValueError: self.post(3) ''' Db Returns: JSON containing data OR 1 - No Such ID 0 - No Attendees ''' def post(self, received): if received == -1: self.response.set_status(400) self.response.write("ERROR: Missing parameters") return elif received == 1: self.response.set_status(401) self.response.write("ERROR: No Such event ID") return elif received == 0: self.response.set_status(402) self.response.write("ERROR: No Attendees") return elif received == 2: self.response.set_status(403) self.response.write("ERROR: Invalid Token") return elif received == 3: self.response.set_status(404) self.response.write("ERROR: Invalid token. Should be integer!") return else: self.response.set_status(200) self.response.write(received) return
def get(self): email = self.request.get("email")#.encode('ascii', 'ignore') hashed_password = self.request.get("password") first_name = self.request.get("firstname") last_name = self.request.get("lastname") self.mydb = DAL() if email is "" or hashed_password is "": self.post(-1) elif email is not "" and hashed_password is not "": isvalid = isValidEmailAddress(email) logging.info(isvalid) if not isvalid: self.post(-4) else: if first_name is "" and last_name is "": self.login(email, hashed_password) else: if first_name is not "" and last_name is "": self.post(-3) elif first_name is "" and last_name is not "": self.post(-2) else: self.register(email, hashed_password, first_name, last_name)
def setUp(self): # First, create an instance of the Testbed class. self.testbed = testbed.Testbed() # Then activate the testbed, which prepares the service stubs for use. self.testbed.activate() # Next, declare which service stubs you want to use. self.testbed.init_datastore_v3_stub(User) self.testbed.init_memcache_stub() # Clear ndb's in-context cache between tests. # This prevents data from leaking between tests. # Alternatively, you could disable caching by # using ndb.get_context().set_cache_policy(False) ndb.get_context().clear_cache() self.mydb = DAL() self.obj = SearchEventsUsingAPI() event_id = self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") self.ev = event_id.id() self.mydb.set_user_details(10204308876621622, 'Itamar', 'Sharify', '*****@*****.**') self.mydb.set_user_details(10204308876621633, 'Olesya', 'Shapira', '*****@*****.**') self.mydb.set_user_details(10204308876621644, 'Rita', 'Markovich', '*****@*****.**')
class UserDetails(unittest.TestCase): def setUp(self): # First, create an instance of the Testbed class. self.testbed = testbed.Testbed() # Then activate the testbed, which prepares the service stubs for use. self.testbed.activate() # Next, declare which service stubs you want to use. self.testbed.init_datastore_v3_stub(User) self.testbed.init_memcache_stub() # Clear ndb's in-context cache between tests. # This prevents data from leaking between tests. # Alternatively, you could disable caching by # using ndb.get_context().set_cache_policy(False) ndb.get_context().clear_cache() self.mydb = DAL() self.obj = SearchEventsUsingAPI() def test_get_user_details(self): id = self.mydb.set_user_details(10204308876621622, 'Itamar', 'Sharify', '*****@*****.**') self.assertIsNotNone(self.mydb.get_user_details(user_id=id)) def test_set_name(self): id = self.mydb.set_user_details(10204308876621622, 'Itamar', 'Sharify', '*****@*****.**') self.assertEqual( self.mydb.get_user_details(user_id=id)['name'], "Itamar") def test_set_event(self): self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") self.assertTrue(Event.check_event_exist("222342395")) def test_get_event_details(self): key = self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") self.assertIsNotNone(self.mydb.get_event_details(key.id())) def test_check_update_event_canceled(self): key = self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") key = self.mydb.set_event_details("222342395", "Canceled", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") results = Event.query(Event.id == "222342395") self.assertEqual(results.count(), 1) result = results.get() self.assertEqual("Canceled", result.name) def test_check_update_event_by_same_name(self): key = self.mydb.set_event_details("22234666", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") key = self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.eventbrite.com", 64, "free", "All", "evenbrite") results = Event.query(Event.name == "Hadoop Ecosystem Workshop") self.assertEqual(results.count(), 1) def tearDown(self): self.testbed.deactivate()
class UserDetails(unittest.TestCase): def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub(User) self.testbed.init_memcache_stub() ndb.get_context().clear_cache() self.mydb = DAL() self.obj = SearchEventsUsingAPI() def test_check_login_that_already_fb_logged_in(self): self.mydb.set_user_details(12, "Itamar", "Sharify", "*****@*****.**") token = self.mydb.register("*****@*****.**", "12134", "Itamar", "Sharify") qry = User.query(User.email == "*****@*****.**") print "token", token for q in qry: print q.first_name , q.last_name, q.email self.assertTrue(qry.count() == 1) def test_register_new_user(self): token = self.mydb.register("*****@*****.**", "12134", "Itamar", "Sharify") qry = User.query(User.email == "*****@*****.**") print "token", token for q in qry: print q.first_name , q.last_name, q.email self.assertTrue(qry.count() == 1) def test_error_is_1_on_wrong_password(self): self.mydb.register("*****@*****.**", "12134", "Itamar", "Sharify") res = self.mydb.user_login("*****@*****.**", "12134") self.assertEqual(res, 1) def test_error_is_false_on_not_existing_email(self): self.mydb.register("*****@*****.**", "12134", "Itamar", "Sharify") res = self.mydb.user_login("*****@*****.**", "1213") self.assertFalse(res) def test_error_is_2_on_none_password(self): self.mydb.set_user_details(12, "Itamar", "Sharify", "*****@*****.**") qry = User.query(User.email == "*****@*****.**") res = self.mydb.user_login("*****@*****.**", "1213") self.assertEqual(res, 2) def test_check_token_exist(self): self.mydb.set_user_details(12, "Itamar", "Sharify", "*****@*****.**") self.assertTrue(self.mydb.check_token(1)) def test_check_token_not_exist(self): self.mydb.set_user_details(12, "Itamar", "Sharify", "*****@*****.**") self.assertFalse(self.mydb.check_token(2)) def test_check_json_for_get_user_by_token(self): self.mydb.set_user_details(12, "Itamar", "Sharify", "*****@*****.**") print self.mydb.get_user_by_token(1) self.assertTrue(json.loads(self.mydb.get_user_by_token(1))) def test_check_json_for_get_user_by_token_error(self): self.mydb.set_user_details(12, "Itamar", "Sharify", "*****@*****.**") res = self.mydb.get_user_by_token(35) self.assertEqual(1, res)
class UserLoginHandler(webapp2.RequestHandler): def get(self): email = self.request.get("email")#.encode('ascii', 'ignore') hashed_password = self.request.get("password") first_name = self.request.get("firstname") last_name = self.request.get("lastname") self.mydb = DAL() if email is "" or hashed_password is "": self.post(-1) elif email is not "" and hashed_password is not "": isvalid = isValidEmailAddress(email) logging.info(isvalid) if not isvalid: self.post(-4) else: if first_name is "" and last_name is "": self.login(email, hashed_password) else: if first_name is not "" and last_name is "": self.post(-3) elif first_name is "" and last_name is not "": self.post(-2) else: self.register(email, hashed_password, first_name, last_name) def login(self, email, hashed_password): token = self.mydb.user_login(email, hashed_password) self.post(token) def register(self, email, hashed_password, first_name, last_name): token = self.mydb.register(email, hashed_password, first_name, last_name) self.post(token) def post(self,response): self.response.headers.add_header("Access-Control-Allow-Origin", "*") self.response.headers['Content-Type'] = 'application/json' if response is -4: self.response.set_status(403) self.response.write("ERROR: Invalid mail") elif response is -3: self.response.set_status(402) self.response.write("ERROR: Missing Last Name") elif response is -2: self.response.set_status(401) self.response.write("ERROR: Missing First Name") elif response is -1: self.response.set_status(400) self.response.write("ERROR: Missing Parameters") elif response is False: self.response.set_status(501) self.response.write("ERROR: User Not Exist") elif response is 1: self.response.set_status(500) self.response.write("ERROR: Wrong Password") elif response is 2: self.response.set_status(502) self.response.write("ERROR: User already exist!") else: self.response.set_status(200) self.response.write(response)
class UserLoginHandler(webapp2.RequestHandler): def get(self): email = self.request.get("email") #.encode('ascii', 'ignore') hashed_password = self.request.get("password") first_name = self.request.get("firstname") last_name = self.request.get("lastname") self.mydb = DAL() if email is "" or hashed_password is "": self.post(-1) elif email is not "" and hashed_password is not "": isvalid = isValidEmailAddress(email) logging.info(isvalid) if not isvalid: self.post(-4) else: if first_name is "" and last_name is "": self.login(email, hashed_password) else: if first_name is not "" and last_name is "": self.post(-3) elif first_name is "" and last_name is not "": self.post(-2) else: self.register(email, hashed_password, first_name, last_name) def login(self, email, hashed_password): token = self.mydb.user_login(email, hashed_password) self.post(token) def register(self, email, hashed_password, first_name, last_name): token = self.mydb.register(email, hashed_password, first_name, last_name) self.post(token) def post(self, response): if response is -4: self.response.set_status(403) self.response.write("ERROR: Invalid mail") elif response is -3: self.response.set_status(402) self.response.write("ERROR: Missing Last Name") elif response is -2: self.response.set_status(401) self.response.write("ERROR: Missing First Name") elif response is -1: self.response.set_status(400) self.response.write("ERROR: Missing Parameters") elif response is False: self.response.set_status(501) self.response.write("ERROR: User Not Exist") elif response is 1: self.response.set_status(500) self.response.write("ERROR: Wrong Password") elif response is 2: self.response.set_status(502) self.response.write("ERROR: User already exist!") else: self.response.set_status(200) self.response.write(response)
class UserDetails(unittest.TestCase): def setUp(self): # First, create an instance of the Testbed class. self.testbed = testbed.Testbed() # Then activate the testbed, which prepares the service stubs for use. self.testbed.activate() # Next, declare which service stubs you want to use. self.testbed.init_datastore_v3_stub(User) self.testbed.init_memcache_stub() # Clear ndb's in-context cache between tests. # This prevents data from leaking between tests. # Alternatively, you could disable caching by # using ndb.get_context().set_cache_policy(False) ndb.get_context().clear_cache() self.mydb = DAL() self.obj = SearchEventsUsingAPI() event_id = self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") self.ev = event_id.id() self.mydb.set_user_details(10204308876621622, 'Itamar', 'Sharify', '*****@*****.**') self.mydb.set_user_details(10204308876621633, 'Olesya', 'Shapira', '*****@*****.**') self.mydb.set_user_details(10204308876621644, 'Rita', 'Markovich', '*****@*****.**') def test_get_attendings_after_attend(self): self.mydb.attend(2, self.ev) self.mydb.attend(3, self.ev) self.mydb.attend(4, self.ev) res1 = self.mydb.get_attendings(self.ev, 4) self.assertTrue(json.loads(res1)) def test_get_attendings_after_unattend(self): self.mydb.attend(2, self.ev) self.mydb.unattend(2, self.ev) res1 = self.mydb.get_attendings(self.ev, 4) self.assertEqual(res1, '[]') def _test_get_attendings_not_my_self(self): self.mydb.attend(2, self.ev) res1 = self.mydb.get_attendings(self.ev, 2) self.assertEqual(res1, '[]') def test_attend(self): res = self.mydb.attend(2, self.ev) self.assertEqual(0, res) def test_attend_wrong_user_id_return_1(self): res = self.mydb.attend(1, self.ev) self.assertTrue(1, res) def test_attend_wrong_event_id_return_2(self): res = self.mydb.attend(2, 12) self.assertTrue(2, res) def test_unattend(self): self.mydb.attend(2, self.ev) res = self.mydb.unattend(2, self.ev) self.assertEqual(0, res) def test_get_all_user_events(self): self.mydb.attend(2, self.ev) event_id = self.mydb.set_event_details("2296", "Some Event", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") self.mydb.attend(2, event_id.id()) res = self.mydb.get_all_user_events(2) print res self.assertTrue(json.loads(res)) def tearDown(self): self.testbed.deactivate()
class UserDetails(unittest.TestCase): def setUp(self): # First, create an instance of the Testbed class. self.testbed = testbed.Testbed() # Then activate the testbed, which prepares the service stubs for use. self.testbed.activate() # Next, declare which service stubs you want to use. self.testbed.init_datastore_v3_stub(User) self.testbed.init_memcache_stub() # Clear ndb's in-context cache between tests. # This prevents data from leaking between tests. # Alternatively, you could disable caching by # using ndb.get_context().set_cache_policy(False) ndb.get_context().clear_cache() self.mydb = DAL() self.obj = SearchEventsUsingAPI() def test_get_user_details(self): id = self.mydb.set_user_details(10204308876621622, 'Itamar', 'Sharify', '*****@*****.**') self.assertIsNotNone(self.mydb.get_user_details(user_id=id)) def test_set_name(self): id = self.mydb.set_user_details(10204308876621622, 'Itamar', 'Sharify', '*****@*****.**') self.assertEqual(self.mydb.get_user_details(user_id=id)['name'], "Itamar") def test_set_event(self): self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") self.assertTrue(Event.check_event_exist("222342395")) def test_get_event_details(self): key = self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") self.assertIsNotNone(self.mydb.get_event_details(key.id())) def test_check_update_event_canceled(self): key = self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") key = self.mydb.set_event_details("222342395", "Canceled", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") results = Event.query(Event.id == "222342395") self.assertEqual(results.count(), 1) result = results.get() self.assertEqual("Canceled", result.name) def test_check_update_event_by_same_name(self): key = self.mydb.set_event_details("22234666", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.meetup.com", 64, "free", "All", "meetup") key = self.mydb.set_event_details("222342395", "Hadoop Ecosystem Workshop", datetime.now(), "Tel Aviv-Yafo", "Kiryat Atidim", "long-story-short", "rika pedro-shoham", "http://www.eventbrite.com", 64, "free", "All", "evenbrite") results = Event.query(Event.name == "Hadoop Ecosystem Workshop") self.assertEqual(results.count(), 1) def tearDown(self): self.testbed.deactivate()