Пример #1
0
    def test_str_different_start_and_end_day(self):
        """Ensure that an object's string representation is correct when its start and end dates are different.

        An Event that starts and ends on different days should have a string representation of the form:
        'EVENT_TYPE_LABEL from MM-DD-YYYY to MM-DD-YYYY'
        """
        event = Event(type=Event.EventType.OTHER,
                      topics=[],
                      start=timezone.datetime(2021,
                                              4,
                                              20,
                                              1,
                                              30,
                                              tzinfo=pytz.UTC),
                      end=timezone.datetime(2021,
                                            4,
                                            21,
                                            3,
                                            30,
                                            tzinfo=pytz.UTC))
        event.save()

        self.assertEqual(
            f'{Event.EventType.OTHER.label} from 04-20-2021 to 04-21-2021',
            str(event))
Пример #2
0
 def setUp(self) -> None:
     self.organizer = Group(name="organizer")
     self.organizer.save()
     self.public = Event(
         name="Public Event",
         image=get_image_file(),
         description="Public Event description",
         lead="Public Event Lead",
         start_date_time=make_aware(
             datetime.datetime(2200, 1, 1, hour=1, minute=20)),
         end_date_time=make_aware(
             datetime.datetime(2200, 1, 1, hour=16, minute=36)),
         member_only=False,
         location="Common Room",
         organizer=self.organizer,
         price=69.69,
     )
     self.public.save()
     self.member = Event(
         name="Member Event",
         image=get_image_file(),
         description="Member Event description",
         lead="Member Event Lead",
         start_date_time=make_aware(
             datetime.datetime(2200, 1, 1, hour=1, minute=20)),
         end_date_time=make_aware(
             datetime.datetime(2200, 1, 1, hour=16, minute=36)),
         member_only=True,
         location="Common Room",
         organizer=self.organizer,
         price=69.69,
     )
     self.member.save()
Пример #3
0
	def testEventsCreation(self):
		u = Event.add("Event1","body",'hads','lol',"2013-09-10")
		U = Event.objects.filter(head = "Event1").get()
		self.assertEqual(u, U)
		u2 = Event.add("Event2","body",'hads','lol',"2013-09-12")
		U = Event.objects.filter(head = "Event2").get()
		self.assertEqual(u2, U)
Пример #4
0
    def test_subscribing_not_loggedin_not_registered(self):
        
        '''
            tests the creation of a subcription
            if the user is not registered
            checks if the anoynomous user creation
            along with a subscription to this event
        '''

        user = User(**self.user)
        event = Event(author=user,**self.event)
        user.save()
        event.save()
        ev = Event.objects.filter(title=self.event['title'])
        response = self.client.post(
                '/events/'+str(ev[0].id),
                data={  'username': '******',
                        'email': '*****@*****.**',
                        'comment': 'some absurd comment'
                })
        users = User.objects.filter(username='******',email='*****@*****.**')
        self.assertEqual(len(users),1)
        subs = Subscription.objects.all()
        self.assertEqual(len(subs),1)
        self.assertEqual(subs[0].subscriber, users[0])
        self.assertEqual(subs[0].event.author, user)
        self.assertTrue(response.url,'/events/'+str(ev[0].id))
Пример #5
0
    def handle(self, *args, **options):

        # Remove old test data
        call_command('resetdb')

        # host = User.objects.get(email='*****@*****.**')
        host = User(email='*****@*****.**', username='******')
        host.set_password('password')
        host.save()

        details = UserDetails(user=host, display_name="Sam")

        for i in range(0, 12):
            name = "Auto Generated Event {}".format(i)
            date = datetime.now() + timedelta(days=i)

            description = ''.join(loremipsum.get_sentences(15))
            event = Event(name=name, description=description, location="UNSW", host=host, date=date)
            event.save()


            # Create a toplevel post
            post_text = ''.join(loremipsum.get_sentences(15))
            post = Post(author=host, eventID=event, date=date, message=post_text)
            post.save()

            # Generate some replies
            for j in range(0, 10):
                reply_text = ''.join(loremipsum.get_sentences(5))
                post = Post(author=host, eventID=event, date=date, message=reply_text)
                post.save()
Пример #6
0
 def testEventsCreation(self):
     u = Event.add("Event1", "body", 'hads', 'lol', "2013-09-10")
     U = Event.objects.filter(head="Event1").get()
     self.assertEqual(u, U)
     u2 = Event.add("Event2", "body", 'hads', 'lol', "2013-09-12")
     U = Event.objects.filter(head="Event2").get()
     self.assertEqual(u2, U)
Пример #7
0
def commit(request):
	event = Event(event_name=request.POST['event_name'], restaurant_name=request.POST['name'], resource_uri=request.POST['resource_uri'],time=request.POST['start'], notes = request.POST['notes'])
	event.save()
	event_pk = Event.objects.all().order_by('pk'[:1])
	request.session['event_id'] = event.id
	request.session['resource_uri'] = event.resource_uri
	request.session['event_name'] = event.event_name
	request.session['notes'] = event.notes
	return redirect('/events/make_reservation')
Пример #8
0
    def test_queryset_event_in_progress(self):
        """Ensure that an event that has started, but not completed, is not included in the `upcoming` queryset.
        """
        e = Event(type=Event.EventType.WORKSHOP,
                  topics=['Topic'],
                  start=timezone.now() - timedelta(hours=1),
                  end=timezone.now() + timedelta(hours=1))

        e.save()
        self.assertEqual(0, len(Event.objects.upcoming()))
Пример #9
0
    def test_list_action_valid_count_less_than_num_in_db(self):
        """Ensure that specifying a valid count does not cause any issues.
        """
        e = Event(type=Event.EventType.WORKSHOP,
                  topics=['Topic'],
                  start=timezone.now() - timedelta(hours=1, days=1),
                  end=timezone.now() - timedelta(days=1))
        e.save()

        url = reverse('event-list')
        response = self.client.get(f'{url}?count=1')
        self.assertEqual(status.HTTP_200_OK, response.status_code)
        self.assertEqual(1, len(response.data))
Пример #10
0
    def test_event_created(self, event_created):
        """Ensure that the `event_created` task is run with the correct arguments when a new Event object is created
        and saved.
        """
        event = Event(type=Event.EventType.WORKSHOP,
                      topics=['AI/ML'],
                      start=timezone.now(),
                      end=timezone.now() + timedelta(days=2))
        event.save()

        self.assertTrue(event_created.called)
        self.assertEqual(
            Event.EventType(event.type).label, event_created.call_args[0][0])
        self.assertEqual(event.start, event_created.call_args[0][1])
Пример #11
0
    def test_clean_invalid_relation(self):
        """Ensure that a ValidationError is raised for an object whose `form` is not one of the supported relation
        types.
        """
        event = Event(type=Event.EventType.WORKSHOP,
                      topics=['AI/ML'],
                      start=timezone.now(),
                      end=timezone.now() + timedelta(days=2))
        event.save()

        comment = AdminComment(first_name='John',
                               last_name='Adams',
                               comment='Comment text',
                               form=event)
        self.assertRaises(ValidationError, comment.full_clean)
Пример #12
0
def insertLocationView(request, id):
    event = Event.objects.get(id=id)
    object = Event()
    locations = Location.objects.filter(event=id)
    location_form = LocationForm()

    if request.method == 'POST':
        location_form = LocationForm(request.POST)
        if location_form.is_valid:
            location_repeat = Location.objects.all().filter(
                event=event).filter(name=location_form['name'].value())
            if location_repeat.first() == None:
                addLocationView(request, event.id,
                                location_form['name'].value(),
                                location_form['cost'].value())
                messages.success(request, 'Localidad agregada exitosamente')
                return HttpResponseRedirect(
                    reverse('location_crear', args=[id]))
            else:
                messages.error(request, 'Error, localidad repetida')
                return HttpResponseRedirect(
                    reverse('location_crear', args=[id]))
    else:
        context = {
            'event': event,
            'location_form': location_form,
            'locations': locations
        }
    return render(request, 'tickets/generateLocations.html', context)
Пример #13
0
def list_tracks(request, slug):
    event = Event.get_by_slug(slug)
    tracks = event.tracks()
    return [{
        'name': track.name,
        'schedule': track.get_talks(event)
    } for track in tracks]
Пример #14
0
def login():
    data = request.get_json()

    if data is None or None in [
            data.get('password', None),
            data.get('email', None)
    ]:
        return jsonify({
            'code': NotValidData.code,
            'description': NotValidData.description
        })

    user = User.query.filter_by(email=data['email']).first()
    if user is None:
        return jsonify({
            'code': WrongPasswordOrEmail.code,
            'description': WrongPasswordOrEmail.description
        })
    if User.verify_password(user.password, data['password']):
        event = Event(user_id=user.id, type_active=Event.TypeActivity.Login)
        db.session.add(event)
        db.session.commit()
        token = user.get_token()
        return jsonify({'token': token, 'user_id': user.id})
    return jsonify({
        'code': WrongPasswordOrEmail.code,
        'description': WrongPasswordOrEmail.description
    })
Пример #15
0
def createPost():
    data = request.get_json()

    if (data is None
            or None in [data.get('text', None),
                        data.get('author_id', None)]):
        return jsonify({
            'code': NotValidData.code,
            'description': NotValidData.description
        })

    if User.query.filter_by(id=data['author_id']).first() is None:
        return jsonify({
            'code': NotValidData.code,
            'description': NotValidData.description
        })

    post = Post(author_id=data['author_id'], text=data['text'])
    event = Event(user_id=data['author_id'],
                  type_active=Event.TypeActivity.Request)
    db.session.add(post)
    db.session.add(event)
    db.session.commit()
    return jsonify({
        'id': post.id,
        'text': post.text,
        'author_id': post.author_id
    })
Пример #16
0
    def test_event_type_serializer_method_field(self):
        """Ensure that the event `type` serializer method field has the correct value in an API response.
        """
        url = reverse('event-list')

        response = self.client.get(f'{url}/{self.event.pk}/')
        self.assertEqual(
            Event.EventType(self.event.type).label, response.data['type'])
Пример #17
0
    def test_event_form(self):

        response = self.client.get('/events/create')
        html = response.content.decode('utf-8')

        user = User(**self.user)
        event = Event(author=user, **self.event)
        form = EventForm(instance=event)
Пример #18
0
    def test_end_datetime_before_start_datetime(self):
        """Ensure that a ValidationError is raised for an object whose start falls after its end.
        """
        event = Event(type=Event.EventType.WORKSHOP,
                      topics=['AI/ML'],
                      start=timezone.now(),
                      end=timezone.now() - timedelta(days=1))

        self.assertRaises(ValidationError, event.full_clean)
Пример #19
0
    def test_valid_start_and_end(self):
        """Ensure that a ValidationError is not raised for an object with valid start and end datetimes.
        """
        event = Event(type=Event.EventType.WORKSHOP,
                      topics=['AI/ML'],
                      start=timezone.now(),
                      end=timezone.now() + timedelta(days=2))

        self.assertNotRaises(ValidationError, event.full_clean)
Пример #20
0
    def test_valid_topics_nonempty_list(self):
        """Ensure that a ValidationError is not raised for an object with a list of topics containing one valid topic.
        """
        event = Event(type=Event.EventType.OTHER,
                      topics=['Topic 1'],
                      start=timezone.now(),
                      end=timezone.now() + timedelta(days=2))

        self.assertNotRaises(ValidationError, event.full_clean)
Пример #21
0
    def setUp(self):

        user = EventViewData.user
        event = EventViewData.event

        self.my_user = User.objects.create(
            username=user['username'],
            email=user['email'],
            password=user['password'],
        )
        
        self.event = Event(
                title=event['title'],
                description=event['description'],
                author=self.my_user,
                state=event['state'],
            )
        
        self.event.save()
Пример #22
0
    def test_start_and_end_equal(self):
        """Ensure that a ValidationError is raised for an object whose start falls after its end.
        """
        time = timezone.now()
        event = Event(type=Event.EventType.WORKSHOP,
                      topics=['AI/ML'],
                      start=time,
                      end=time)

        self.assertRaises(ValidationError, event.full_clean)
    def get_type(self, obj):
        """A get method for the EventSerializer class' ``type`` attribute.

        Args:
            obj: The Event object that is being serialized.

        Returns:
            The verbose label associated with the ``type`` of the Event object.
        """
        return Event.EventType(obj.type).label
Пример #24
0
 def setUpTestData(cls):
     """Creates and saves a valid Event object for creating ContactInfo objects in individual tests.
     """
     cls.event = Event(
         type=Event.EventType.OTHER,
         topics=['Topic 1'],
         start=timezone.now(),
         end=timezone.now() + timedelta(days=2)
     )
     cls.event.save()
Пример #25
0
    def test_invalid_topics_whitespace_string_in_list_with_valid_string(self):
        """Ensure that a ValidationError is raised for an object with one valid and invalid topic in its list of topics.

        Topics cannot be represented by strings containing only whitespace characters.
        """
        event = Event(type=Event.EventType.OTHER,
                      topics=['Topic 1', ' \t\f'],
                      start=timezone.now(),
                      end=timezone.now() + timedelta(days=2))

        self.assertRaises(ValidationError, event.full_clean)
Пример #26
0
    def test_invalid_topics_empty_string_in_list(self):
        """Ensure that a ValidationError is raised for an object with a single, invalid topic in its list of topics.

        Topics cannot be represented by strings of length 0.
        """
        event = Event(type=Event.EventType.OTHER,
                      topics=[''],
                      start=timezone.now(),
                      end=timezone.now() + timedelta(days=2))

        self.assertRaises(ValidationError, event.full_clean)
Пример #27
0
    def setUp(self):
        user = EventViewData.user
        event = EventViewData.event

        self.my_user = User.objects.create(
            username=user['username'],
            email=user['email'],
            password=user['password'],
        )
        self.my_user.save()
        event_num = 10
        self.events = []
        for _ in range(event_num):
            e = Event(
                title=event['title'],
                description=event['description'],
                author=self.my_user,
                state=event['state'],
            )
            e.save()
            self.events.append(e)
Пример #28
0
class EventDetailViewTest(TestCase):
    '''
        Test on event details view at url /events/<int:pk>

    '''

    def setUp(self):

        user = EventViewData.user
        event = EventViewData.event

        self.my_user = User.objects.create(
            username=user['username'],
            email=user['email'],
            password=user['password'],
        )
        
        self.event = Event(
                title=event['title'],
                description=event['description'],
                author=self.my_user,
                state=event['state'],
            )
        
        self.event.save()

    def test_resolving_views(self):
        response = self.client.get('/events/'+str(self.event.pk))
        self.assertTemplateUsed(response,'events/event.html')
        
        event = response.context['event']
        self.assertTrue(event.title == self.event.title)
        self.assertTrue(event.author == self.event.author)
        self.assertTrue(event.description == self.event.description)
        self.assertTemplateUsed(response,'events/event.html')
        

    def tearDown(self):
        pass
Пример #29
0
    def testDate(self):
        self.assertTrue(Event.isValidDate('2013-09-10'))
        self.assertTrue(Event.isValidDate('2013-01-10'))
        self.assertTrue(Event.isValidDate('2013-12-10'))

        self.assertFalse(Event.isValidDate('2013-00-10'))
        self.assertFalse(Event.isValidDate('2013-13-10'))
        self.assertFalse(Event.isValidDate('2013-asd-10'))
Пример #30
0
	def testDate(self):
		self.assertTrue(Event.isValidDate('2013-09-10')) 
		self.assertTrue(Event.isValidDate('2013-01-10')) 
		self.assertTrue(Event.isValidDate('2013-12-10')) 
		
		self.assertFalse(Event.isValidDate('2013-00-10'))
		self.assertFalse(Event.isValidDate('2013-13-10')) 
		self.assertFalse(Event.isValidDate('2013-asd-10')) 
Пример #31
0
    def test_queryset_two_upcoming_events(self):
        """Ensure that a queryset of length two is returned when there are two upcoming events in the database.
        """
        e1 = Event(type=Event.EventType.PROJECT_MEETING,
                   topics=['AI/ML'],
                   start=timezone.now() + timedelta(hours=1, days=1),
                   end=timezone.now() + timedelta(days=1))
        e2 = Event(type=Event.EventType.GUEST_SPEAKER,
                   topics=['AI/ML'],
                   start=timezone.now() + timedelta(hours=2, days=1),
                   end=timezone.now() + timedelta(hours=1, days=1))

        e1.save()
        e2.save()
        self.assertEqual(2, len(Event.objects.upcoming()))
Пример #32
0
    def test_queryset_no_upcoming_events(self):
        """Ensure that the `upcoming` method returns an empty queryset when there are no upcoming events.
        """
        e1 = Event(type=Event.EventType.WORKSHOP,
                   topics=['AI/ML'],
                   start=timezone.now() - timedelta(hours=1, days=1),
                   end=timezone.now() - timedelta(days=1))
        e2 = Event(type=Event.EventType.GUEST_SPEAKER,
                   topics=['AI/ML'],
                   start=timezone.now() - timedelta(hours=2, days=1),
                   end=timezone.now() - timedelta(hours=1, days=1))

        e1.save()
        e2.save()
        self.assertEqual(0, len(Event.objects.upcoming()))
Пример #33
0
    def test_queryset_one_upcoming_event_one_passed(self):
        """Ensure that the `upcoming` method returns a queryset of length one when there is one upcoming event.
        """
        e1 = Event(type=Event.EventType.HACKATHON_MEETING,
                   topics=['AI/ML'],
                   start=timezone.now() + timedelta(hours=1, days=1),
                   end=timezone.now() + timedelta(days=1))
        e2 = Event(type=Event.EventType.GUEST_SPEAKER,
                   topics=['AI/ML'],
                   start=timezone.now() - timedelta(hours=2, days=1),
                   end=timezone.now() - timedelta(hours=1, days=1))

        e1.save()
        e2.save()
        self.assertEqual(1, len(Event.objects.upcoming()))
        self.assertEqual(e1.pk, Event.objects.upcoming()[0].pk)
Пример #34
0
	def testEventsRawCreation(self):
		e = Event(head = "hello", body = "123452", image = "asd.jpg",game = "lol",date="2013-09-10")
		e2 = Event(head = "hello2", body = "123452", image = "asd.jpg",game = "lol",date="2013-09-22")
		e.save()
		E = Event.objects.filter(head = "hello").get();
		self.assertEqual(e.head, E.head)
		
		self.assertNotEqual(e2.head, E.head)
		E2 = Event.objects.filter(head = "hello2");
		self.assertEqual(0, E2.count())
		e2.save()
		E2 = Event.objects.filter(head = "hello2");
		self.assertEqual(1, E2.count())
Пример #35
0
def recent_posts_or_events():
    posts = list(Post.recent())
    events = list(Event.recent())
    p_o_e = posts + events
    p_o_e.sort(key=lambda x: x.date, reverse=True)
    return p_o_e