def set_emailAction(self,email): if self.user: current_email=self.user.getEmail() if current_email!=email: user=User().get_by_auth_id(self.user.username) user.email_address=email user.put() model={"email":email} return model
class RequestManagerTest(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() self.testbed.init_memcache_stub() self.testbed.init_taskqueue_stub() self.user1 = User(name="User1_name", last_name="User1_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user1.put() self.user2 = User(name="User2_name", last_name="User2_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user2.put() self.user3 = User(name="User3_name", last_name="User3_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user3.put() self.user4 = User(name="User4_name", last_name="User4_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user4.put() def tearDown(self): self.testbed.deactivate() def test_initiate(self): #Activity Created by user1 success, message, activity_created = EventManager.create( category='Category1', duration='40', expiration='180', username=self.user1.username, building_name='building_1', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note1') activity_manager = EventManager.get(activity_created.key.urlsafe()) self.assertEqual(activity_created.key.urlsafe(), activity_manager.get_event().key.urlsafe()) (success, request) = RequestManager.initiate(activity_key=activity_created.key, requester_key=self.user2.key) self.assertIsNotNone(request, "Failed to initiate request") request_manager = RequestManager.get(request.key.urlsafe()) self.assertIsNotNone(request_manager, "Failed to load request manager") self.assertEqual(True, request_manager.can_accept(self.user1.username)) def test_approve(self): #Activity Created by user1 success, message, activity_created = EventManager.create( category='Category1', duration='40', expiration='180', username=self.user1.username, building_name='building_1', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note1') activity_manager = EventManager.get(activity_created.key.urlsafe()) self.assertEqual(activity_created.key.urlsafe(), activity_manager.get_event().key.urlsafe()) (success, request) = RequestManager.initiate(activity_key=activity_created.key, requester_key=self.user2.key) self.assertIsNotNone(request, "Failed to initiate request") request_manager = RequestManager.get(request.key.urlsafe()) self.assertIsNotNone(request_manager, "Failed to load request manager") self.assertEqual(True, request_manager.can_accept(self.user1.username)) request_manager.accept() self.assertEqual(request.ACCEPTED, request.status) self.assertEqual(1, activity_manager.spots_remaining())
class EventManagerTest(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() self.testbed.init_memcache_stub() self.testbed.init_taskqueue_stub() self.user1 = User(name="User1_name", last_name="User1_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user1.put() self.user2 = User(name="User2_name", last_name="User2_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user2.put() self.user3 = User(name="User3_name", last_name="User3_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user3.put() self.user4 = User(name="User4_name", last_name="User4_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user4.put() def tearDown(self): self.testbed.deactivate() def test_create_specific_interest(self): EventManager.create(category='Category1', duration='40', expiration='180', username='******', building_name='building_1', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note1') EventManager.create(category='Category2', duration='40', expiration='180', username='******', building_name='building_1', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note2') EventManager.create(category='Category3', duration='40', expiration='180', username='******', building_name='building_1', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note2') EventManager.create(category='Category4', duration='40', expiration='180', username='******', building_name='building_2', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note3') EventManager.create(category='Category5', duration='40', expiration='180', username='******', building_name='building_2', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note4') self.assertEqual(3, len(Event.get_activities_by_building('building_1'))) self.assertEqual(2, len(Event.get_activities_by_building('building_2'))) def test_load_activity_mgr(self): success, message, activity_created = EventManager.create( category='Category1', duration='40', expiration='180', username='******', building_name='building_1', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note1') activity_from_activity_mgr = EventManager.get( activity_created.key.urlsafe()).get_event() self.assertEqual(activity_created.key.urlsafe(), activity_from_activity_mgr.key.urlsafe()) self.assertEqual(Event.FORMING, activity_from_activity_mgr.status) def test_join(self): success, message, activity_created = EventManager.create( category='Category1', duration='40', expiration='180', username=self.user1.username, building_name='building_1', min_number_of_people_to_join='1', max_number_of_people_to_join='2', note='note1') activity_manager = EventManager.get(activity_created.key.urlsafe()) self.assertEqual(activity_created.key.urlsafe(), activity_manager.get_event().key.urlsafe()) self.assertEqual(True, activity_manager.can_join(self.user2.key.id())[0]) activity_manager.connect(self.user2.key.id()) self.assertEqual(Event.FORMED_OPEN, activity_created.status) self.assertEqual(False, activity_manager.can_join(self.user2.key.id())[0]) self.assertEqual(True, activity_manager.can_join(self.user3.key.id())[0]) activity_manager.connect(self.user3.key.id()) self.assertEqual(Event.FORMED_OPEN, activity_created.status) self.assertEqual(False, activity_manager.can_join(self.user4.key.id())[0]) self.assertEqual(2, activity_manager.companion_count()) get_interest_details(activity_created.key.urlsafe()) #Now have 3 Unjoin activity activity_manager.unjoin(self.user3.key.id()) self.assertEqual(Event.FORMED_OPEN, activity_created.status) self.assertEqual(1, activity_manager.companion_count()) #Now check if User4 can join self.assertEqual(True, activity_manager.can_join(self.user4.key.id())[0]) activity_manager.connect(self.user4.key.id()) self.assertEqual(2, activity_manager.companion_count()) self.assertEqual(Event.FORMED_OPEN, activity_created.status) activity_manager.unjoin(self.user4.key.id()) activity_manager.unjoin(self.user2.key.id()) self.assertEqual(Event.FORMING, activity_created.status) self.assertEqual(0, activity_manager.companion_count()) def test_set_time_interest(self): interest_start_time = datetime.utcnow() + timedelta(hours=2) success, message, activity_created = EventManager.create( category='Category1', start_time=interest_start_time, username=self.user1.username, building_name='building_1', min_number_of_people_to_join='1', max_number_of_people_to_join='2', meeting_place='meeting_place', activity_location='activity_location') activity_manager = EventManager.get(activity_created.key.urlsafe()) self.assertEqual(activity_created.key.urlsafe(), activity_manager.get_event().key.urlsafe()) self.assertEqual(True, activity_manager.can_join(self.user2.key.id())[0]) activity_manager.connect(self.user2.key.id()) self.assertEqual(Event.FORMED_OPEN, activity_created.status) self.assertEqual(False, activity_manager.can_join(self.user2.key.id())[0]) self.assertEqual(True, activity_manager.can_join(self.user3.key.id())[0]) activity_manager.connect(self.user3.key.id()) self.assertEqual(Event.FORMED_OPEN, activity_created.status) self.assertEqual(False, activity_manager.can_join(self.user4.key.id())[0]) self.assertEqual(2, activity_manager.companion_count()) get_interest_details(activity_created.key.urlsafe()) #Now have 3 Unjoin activity activity_manager.unjoin(self.user3.key.id()) self.assertEqual(Event.FORMED_OPEN, activity_created.status) self.assertEqual(1, activity_manager.companion_count()) #Now check if User4 can join self.assertEqual(True, activity_manager.can_join(self.user4.key.id())[0]) activity_manager.connect(self.user4.key.id()) self.assertEqual(2, activity_manager.companion_count()) self.assertEqual(Event.FORMED_OPEN, activity_created.status) activity_manager.unjoin(self.user4.key.id()) activity_manager.unjoin(self.user2.key.id()) self.assertEqual(Event.FORMING, activity_created.status) self.assertEqual(0, activity_manager.companion_count()) def test_create_flex_interest(self): EventManager.create(category='Category1', duration='40', expiration='180', username='******', building_name='building_1', note='test_note') EventManager.create(category='Category2', duration='40', expiration='180', username='******', building_name='building_1', note='test_note') EventManager.create(category='Category3', duration='40', expiration='180', username='******', building_name='building_1', note='test_note') EventManager.create(category='Category4', duration='40', expiration='180', username='******', building_name='building_2', note='test_note') EventManager.create(category='Category5', duration='40', expiration='180', username='******', building_name='building_2', note='test_note') self.assertEqual(3, len(Event.get_interests_by_building('building_1'))) self.assertEqual(2, len(Event.get_interests_by_building('building_2'))) def test_load_interest_mgr(self): success, message, interest_created = EventManager.create( category='Category1', duration='40', expiration='180', username='******', building_name='building_1', note='test_note') interest_from_interest_mgr = EventManager.get( interest_created.key.urlsafe()).get_event() self.assertEqual(interest_created.key.urlsafe(), interest_from_interest_mgr.key.urlsafe()) self.assertEqual(Event.FORMING, interest_from_interest_mgr.status) def test_join_flex_interest(self): success, message, interest_created = EventManager.create( category='Category1', duration='40', expiration='180', username=self.user1.username, building_name='building_1', note='test_note') interest_manager = EventManager.get(interest_created.key.urlsafe()) interest_from_interest_mgr = interest_manager.get_event() self.assertEqual(interest_created.key.urlsafe(), interest_from_interest_mgr.key.urlsafe()) self.assertEqual(Event.FORMING, interest_from_interest_mgr.status) interest_manager.join_flex_interest(self.user2.key.id(), min_number_of_people_to_join='2', max_number_of_people_to_join='3') self.assertEqual(Event.EVENT_TYPE_SPECIFIC_INTEREST, interest_created.type) self.assertEqual(Event.FORMING, interest_created.status) self.assertEqual(1, interest_manager.companion_count()) interest_manager.connect(self.user3.key.id()) self.assertEqual(Event.FORMED_OPEN, interest_created.status) self.assertEqual(2, interest_manager.companion_count())
class MatchMakerTest(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() self.testbed.init_memcache_stub() self.testbed.init_taskqueue_stub() self.user1 = User(name="User1_name", last_name="User1_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user1.put() self.user2 = User(name="User2_name", last_name="User2_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user2.put() self.user3 = User(name="User3_name", last_name="User3_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user3.put() self.user4 = User(name="User4_name", last_name="User4_lastname", email="*****@*****.**", password="******", username="******", building="building_1") self.user4.put() def tearDown(self): self.testbed.deactivate() def test_match_making(self): interest_list = [] activity_list = [] #Create some interests interest_list.append( EventManager.create(category='Play date', duration='40', expiration='180', username='******', building_name='building1', note='test_node')[2]) interest_list.append( EventManager.create(category='Play date', duration='40', expiration='180', username='******', building_name='building1', note='test_node')[2]) interest_list.append( EventManager.create(category='Play date', duration='20', expiration='180', username='******', building_name='building1', note='test_node')[2]) #Create some activities activity_list.append( EventManager.create(category='Play date', duration='40', expiration='180', username='******', building_name='building1', ip='127.0.0.1', min_number_of_people_to_join='1', max_number_of_people_to_join='1', note='meet me at shadyside')[2]) activity_list.append( EventManager.create(category='Stroller walk', duration='40', expiration='180', username='******', building_name='building1', ip='127.0.0.1', min_number_of_people_to_join='1', max_number_of_people_to_join='1', note='meet me at shadyside')[2]) #Assert if interests and activities are created fine self.assertEqual( 3, len(Event.get_active_interests_by_category('Play date'))) self.assertEqual( 1, len(Event.get_active_activities_by_category('Stroller walk'))) self.assertEqual( 1, len(Event.get_active_activities_by_category('Stroller walk'))) match_list = MatchMaker.match_all() self.assertEqual(2, len(match_list)) self.assertEqual(2, len(match_list['user1'])) self.assertEqual(1, len(match_list['user2'])) interest = EventManager.create(category='Stroller walk', duration='40', expiration='180', username='******', building_name='building1', note='test_node')[2] interest_list.append(interest) match_list = MatchMaker.match_interest_with_activities( interest.key.urlsafe()) self.assertEqual(1, len(match_list)) self.assertEqual(1, len(match_list['user1'])) activity = EventManager.create(category='Stroller walk', duration='40', expiration='180', username='******', building_name='building1', ip='127.0.0.1', min_number_of_people_to_join='1', max_number_of_people_to_join='1', note='meet me at shadyside')[2] match_list = MatchMaker.match_activity_with_interests( activity.key.urlsafe()) self.assertEqual(1, len(match_list)) activity = EventManager.create(category='Play date', duration='20', expiration='180', username='******', building_name='building1', ip='127.0.0.1', min_number_of_people_to_join='1', max_number_of_people_to_join='1', note='meet me at shadyside')[2] match_list = MatchMaker.match_activity_with_interests( activity.key.urlsafe()) self.assertEqual(2, len(match_list)) self.assertEqual(2, len(match_list['user1']))