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_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')))
Esempio n. 3
0
 def post(self):
     if self.user:
         user_info = models.User.get_by_id(long(self.user_id))
         building_name = user_info.building
         interest_info = dict()
         interest_info['building_name'] = building_name
         interest_info['category'] = self.form.category.data.strip()
         interest_info['username'] = user_info.username
         if hasattr(
                 self.form, 'set_time'
         ) and self.form.set_time.data != "None" and self.form.set_time.data != "":
             interest_info['start_time'] = isodate.parse_datetime(
                 self.form.set_time.data.strip()).replace(tzinfo=None)
         elif hasattr(
                 self.form, 'expiration'
         ) and self.form.expiration.data != "" and self.form.expiration.data != "None":
             interest_info['expiration'] = self.form.expiration.data.strip()
         if hasattr(self.form, 'min_number_of_people_to_join'):
             interest_info[
                 'min_number_of_people_to_join'] = self.form.min_number_of_people_to_join.data.strip(
                 )
         if hasattr(self.form, 'max_number_of_people_to_join'):
             interest_info[
                 'max_number_of_people_to_join'] = self.form.max_number_of_people_to_join.data.strip(
                 )
         if hasattr(self.form, 'min_number_of_people_to_join') and hasattr(
                 self.form, 'max_number_of_people_to_join'):
             min_int = interest_info['min_number_of_people_to_join'].split(
             )[0]
             max_int = interest_info['max_number_of_people_to_join'].split(
             )[0]
             if min_int != 'None' and max_int != 'None':
                 min_count = int(min_int)
                 max_count = int(max_int)
                 if min_count > max_count:
                     message = _(
                         "Minimum number of participants cannot be greater than Maximum number of participants."
                     )
                     self.add_message(message, 'error')
                     return self.redirect_to('join')
         if hasattr(self.form, 'meeting_place'):
             interest_info[
                 'meeting_place'] = self.form.meeting_place.data.strip()
         if hasattr(self.form, 'duration'):
             interest_info['duration'] = self.form.duration.data.strip()
         if hasattr(self.form, 'activity_location'):
             interest_info[
                 'activity_location'] = self.form.activity_location.data.strip(
                 )
         success, message, event = EventManager.create(**interest_info)
         if success:
             message = _(
                 "Your post is now live. View matches and manage it on this My Corner page."
             )
             self.add_message(message, 'success')
         else:
             self.add_message(message, 'error')
         return self.redirect_to('home')
Esempio n. 4
0
 def post(self):
     if self.user:
         user_info = models.User.get_by_id(long(self.user_id))
         building_name = user_info.building
         interest_info = dict()
         interest_info['building_name'] = building_name
         interest_info['category'] = self.form.category.data.strip()
         interest_info['username'] = user_info.username
         if hasattr(
                 self.form, 'set_time'
         ) and self.form.set_time.data != "None" and self.form.set_time.data != "":
             interest_info['start_time'] = isodate.parse_datetime(
                 self.form.set_time.data.strip()).replace(tzinfo=None)
         elif hasattr(
                 self.form, 'expiration'
         ) and self.form.expiration.data != "" and self.form.expiration.data != "None":
             interest_info['expiration'] = self.form.expiration.data.strip()
         if hasattr(self.form, 'min_number_of_people_to_join'):
             interest_info[
                 'min_number_of_people_to_join'] = "1"  #self.form.min_number_of_people_to_join.data.strip()
         if hasattr(self.form, 'max_number_of_people_to_join'):
             interest_info[
                 'max_number_of_people_to_join'] = self.form.max_number_of_people_to_join.data.strip(
                 )
         ''' Commenting out the logic checking block since the min # to join is always 1 for now'''
         '''
         if hasattr(self.form,'min_number_of_people_to_join') and hasattr(self.form,'max_number_of_people_to_join'):
             min_int = interest_info['min_number_of_people_to_join'].split()[0]
             max_int = interest_info['max_number_of_people_to_join'].split()[0]
             if min_int != 'None' and max_int != 'None':
                 min_count = int(min_int)
                 max_count = int(max_int)
                 if min_count > max_count:
                     message = _("Minimum number of participants cannot be greater than Maximum number of participants.")
                     self.add_message(message, 'error')
                     return self.redirect_to('join')
         '''
         if hasattr(self.form, 'meeting_place'):
             interest_info[
                 'meeting_place'] = self.form.meeting_place.data.strip()
         if hasattr(self.form, 'duration'):
             interest_info['duration'] = self.form.duration.data.strip()
         if hasattr(self.form, 'activity_location'):
             interest_info[
                 'activity_location'] = self.form.activity_location.data.strip(
                 )
         success, message, event = EventManager.create(**interest_info)
         if success:
             message = _(
                 "Your post is now live. You can approve join requests and manage it here. Watch your email for notifications."
             )
             self.add_message(message, 'success')
         else:
             self.add_message(message, 'error')
         return self.redirect_to('home')
    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_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_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_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_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))
Esempio n. 10
0
    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())
Esempio n. 11
0
    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']))