Example #1
0
class EventTest(BaseCase):
    def setUp(self):
        self.ensure_test_user()
        self.user = User.objects.get(username=TESTUSER)
        self.place = Place(name='Kiberpipa', note='Bla')
        self.place.save()
        self.project = Project(id=23, name='Tehnicarjenje', responsible=self.user)
        self.project.save(200)
        self.category = Category(name='Drugo', note='Another bla.')
        self.category.save()
        self.tip = TipSodelovanja(name="Predavatelj")
        self.tip.save()

    def create_new_image(self):
        self.client.login(username=TESTUSER, password=TESTPASSWORD)

        resp = self.client.get('/intranet/image_crop_tool/')
        self.assertEqual(resp.status_code, 200)

        resp = self.client.post('/intranet/tmp_upload/', {'foo': ''})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)['status'], 'no image uploaded')

        # TODO: test .png
        f = open(os.path.join(os.path.dirname(__file__), 'test_fixtures', 'sample-1.jpg'), 'rb')
        resp = self.client.post('/intranet/tmp_upload/', {'image': f})
        f.close()

        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)['status'], 'ok')
        self.assertTrue('temporary_filename' in self.client.session)
        filename = simplejson.loads(resp.content)['filename']

        self.assertEqual(self.client.session.get('temporary_filename'), filename)

        resp = self.client.post('/intranet/image_crop_tool/resize/', {'resize': '12,253,10,129', 'filename': filename, 'enter_your_email': ''})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)['status'], 'ok')
        resized_filename = simplejson.loads(resp.content)['resized_filename']

        resp = self.client.post('/intranet/image_crop_tool/save/', {'resized_filename': resized_filename, 'title': 'To je naslov slike.', 'enter_your_email': ''})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)['status'], 'ok')

        self.image_id = IntranetImage.objects.all()[0].id

    def test_event_lifetime(self):
        self.client.login(username=TESTUSER, password=TESTPASSWORD)

        self.create_new_image()

        resp = self.client.get('/intranet/events/create/')
        self.assertEqual(resp.status_code, 200)

        now = datetime.datetime.now()
        tomorrow_noon = datetime.datetime(now.year, now.month, now.day, 12, 0) + datetime.timedelta(2)
        tomorrow_noon_fifteen = datetime.datetime(now.year, now.month, now.day, 13, 0) + datetime.timedelta(2)

        createdata = {
            'event_repeat': 0,
            'event_repeat_freq': 1,
            'event_repeat_freq_type': 0,
            'title': u'Dogodek v Kleti',
            'project': self.project.id,
            'authors': u'Gašper Žejn - Predavatelj',
            'tip': 1,
            'category': self.category.id,
            'language': 'sl',
            'responsible': 1,
            'public': 'on',
            'start_date': tomorrow_noon.strftime('%Y/%m/%d %H:%M'),
            'end_date': tomorrow_noon_fifteen.strftime('%Y/%m/%d %H:%M'),
            'require_technician': 'on',
            'require_video': 'on',
            'place': self.place.id,
            'slides': '',
            'event_image': self.image_id,
            'announce': 'Test event for intranet tests.',
            'note': '',
            'enter_your_email': '',
        }
        resp = self.client.post('/intranet/events/create/', createdata)
        self.assertEqual(resp.status_code, 302)
        # if we don't get location, form failed
        
        redirect_url = resp._headers['location'][1]
        # <iElectric> lahko predpostavljas, da je 1
        event_id = 1

        # validate urls
        self.assertEqual(self.client.get('/event/dogodek-v-kleti-1/', follow=True).redirect_chain[-1], ('http://testserver/sl/event/dogodek-v-kleti-1/', 302))

        resp = self.client.get(redirect_url)
        self.assertEqual(resp.status_code, 200)

        # new event is in the events overview page
        resp = self.client.get('/intranet/events/')
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.content.find(redirect_url) > -1, True)

        # TODO: test archive events

        # add emails to be notified
        email = '*****@*****.**'
        resp = self.client.post('/intranet/events/%s/emails/' % event_id, {'emails': email, 'enter_your_email': ''}, follow=True)
        self.assertEqual(resp.status_code, 200)

        # TODO: test dezurni for events

        # volunteer
        resp = self.client.get('/intranet/events/%s/technician/take/' % event_id, follow=True)
        self.assertEqual(resp.status_code, 200)

        # TODO: test if techie is set
        self.assertTrue(resp.content.find('%s/technician/cancel/' % event_id) > 0)

        # cancel
        resp = self.client.get('/intranet/events/%s/technician/cancel/' % event_id, follow=True)
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.content.find('%s/technician/cancel/' % event_id), -1)

        diarydata = {
            'log_formal': 'no kidding',
            'log_informal': 'just joking',
            'length': '4',
            'uniqueSpot': event_id,
            'enter_your_email': '',
        }

        self.client.get('/intranet/events/%s/technician/take/' % event_id, follow=True)
        resp = self.client.get('/event/dogodek-v-kleti-%s/' % event_id, follow=True)
        # TODO: add diary for event

        # test ical
        # TODO: move to www tests
        resp = self.client.get('/sl/calendar/ical/')
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp._headers['content-type'][1].startswith('text/calendar'), True)
        self.assertTrue(resp.content.startswith('BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Kiberpipa//NONSGML intranet//EN\r\nBEGIN:VEVENT\r\nSUMMARY:'))
Example #2
0
class EventTest(BaseCase):
    def setUp(self):
        self.ensure_test_user()
        self.user = User.objects.get(username=TESTUSER)
        self.place = Place(name='Kiberpipa', note='Bla')
        self.place.save()
        self.project = Project(id=23, name='Tehnicarjenje', responsible=self.user)
        self.project.save(200)
        self.category = Category(name='Drugo', note='Another bla.')
        self.category.save()
        self.tip = TipSodelovanja(name="Predavatelj")
        self.tip.save()

    def create_new_image(self):
        self.client.login(username=TESTUSER, password=TESTPASSWORD)

        resp = self.client.get('/intranet/image_crop_tool/')
        self.assertEqual(resp.status_code, 200)

        resp = self.client.post('/intranet/tmp_upload/', {'foo': ''})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)['status'], 'fail')

        # TODO: test .png
        f = open(os.path.join(os.path.dirname(__file__), 'test_fixtures', 'sample-1.jpg'), 'rb')
        resp = self.client.post('/intranet/tmp_upload/', {'image': f})
        f.close()

        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)['status'], 'ok')
        self.assertTrue('temporary_filename' in self.client.session)
        filename = simplejson.loads(resp.content)['filename']

        self.assertEqual(self.client.session.get('temporary_filename'), filename)

        resp = self.client.post('/intranet/image_crop_tool/resize/', {'resize': '12,253,10,129', 'filename': filename, 'enter_your_email': ''})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)['status'], 'ok')
        resized_filename = simplejson.loads(resp.content)['resized_filename']

        resp = self.client.post('/intranet/image_crop_tool/save/', {'resized_filename': resized_filename, 'title': 'To je naslov slike.', 'enter_your_email': ''})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)['status'], 'ok')

        self.image_id = IntranetImage.objects.all()[0].id

    def test_event_lifetime(self):
        self.client.login(username=TESTUSER, password=TESTPASSWORD)

        self.create_new_image()

        resp = self.client.get('/intranet/events/create/')
        self.assertEqual(resp.status_code, 200)

        now = datetime.datetime.now()
        tomorrow_noon = datetime.datetime(now.year, now.month, now.day, 12, 0) + datetime.timedelta(2)
        tomorrow_noon_fifteen = datetime.datetime(now.year, now.month, now.day, 13, 0) + datetime.timedelta(2)

        createdata = {
            'event_repeat': 0,
            'event_repeat_freq': 1,
            'event_repeat_freq_type': 0,
            'title': u'Dogodek v Kleti',
            'project': self.project.id,
            'authors': u'Gašper Žejn - Predavatelj',
            'tip': 1,
            'category': self.category.id,
            'language': 'sl',
            'responsible': 1,
            'public': 'on',
            'start_date': tomorrow_noon.strftime('%Y/%m/%d %H:%M'),
            'end_date': tomorrow_noon_fifteen.strftime('%Y/%m/%d %H:%M'),
            'require_technician': 'on',
            'require_video': 'on',
            'place': self.place.id,
            'slides': '',
            'event_image': self.image_id,
            'announce': 'Test event for intranet tests.',
            'note': '',
            'enter_your_email': '',
        }
        resp = self.client.post('/intranet/events/create/', createdata)
        self.assertEqual(resp.status_code, 302)
        # if we don't get location, form failed
        redirect_url, event_id = re.match('http://\w+(/intranet/events/.*(\d+)/)$', resp._headers['location'][1]).groups()

        # validate urls
        self.assertEqual(self.client.get('/event/dogodek-v-kleti-1/', follow=True).redirect_chain[-1], ('https://example.com/event/dogodek-v-kleti-1/', 302))

        resp = self.client.get(redirect_url)
        self.assertEqual(resp.status_code, 200)

        resp = self.client.get(redirect_url + 'info.txt/')
        self.assertEqual(resp.status_code, 200)
        for line in [i for i in resp.content.split('\n') if i]:
            self.assertEqual(re.match('^\S+:\s', line) != None, True)

        # autocomplete should work now because a sodelovanje was added
        resp = self.client.get('/intranet/autocomplete/person/', {'q': u'Gašp'})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual('\n' in resp.content, True)

        # new event is in the events overview page
        resp = self.client.get('/intranet/events/')
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.content.find(redirect_url) > -1, True)

        # add a number of visitors
        resp = self.client.post(redirect_url + 'count/', {'visitors': 10, 'enter_your_email': ''})
        self.assertEqual(resp.status_code, 302)
        a_redirect_url, _ = re.match('http://\w+(/intranet/events/(\d+)/)$', resp._headers['location'][1]).groups()
        self.assertEqual(a_redirect_url, redirect_url)

        # add emails to be notified
        email = '*****@*****.**'
        resp = self.client.post('/intranet/events/%s/emails/' % event_id, {'emails': email, 'enter_your_email': ''}, follow=True)
        self.assertEqual(resp.status_code, 200)

        # check that email is listed
        resp = self.client.get('/intranet/events/%s/' % event_id)
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.content.find(email) > -1, True)

        # tehniki
        resp = self.client.get('/intranet/tehniki/')
        self.assertEqual(resp.status_code, 200)

        # volunteer
        resp = self.client.get('/intranet/tehniki/add/%s/' % event_id, follow=True)
        self.assertEqual(resp.status_code, 200)

        # check volunteering
        resp = self.client.get('/intranet/tehniki/')
        self.assertEqual(resp.status_code, 200)

        # cancel
        resp = self.client.get('/intranet/tehniki/cancel/%s/' % event_id, follow=True)
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.content.find('/intranet/tehniki/cancel/%s/' % event_id), -1)

        # add diary
        diarydata = {
            'log_formal': 'no kidding',
            'log_informal': 'just joking',
            'length': '4',
            'uniqueSpot': event_id,
            'enter_your_email': '',
        }
        resp = self.client.post('/intranet/tehniki/add/', diarydata, follow=True)
        self.assertEqual(resp.status_code, 200)

        # check monthly view
        month = ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', 'okt', 'nov', 'dec'][tomorrow_noon.month - 1]
        resp = self.client.get('/intranet/tehniki/%s/%s/' % (tomorrow_noon.year, month))
        self.assertEqual(resp.status_code, 200)

        # test ical
        resp = self.client.get('/sl/calendar/ical/')
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp._headers['content-type'][1].startswith('text/calendar'), True)
Example #3
0
class EventTest(BaseCase):
    def setUp(self):
        self.ensure_test_user()
        self.user = User.objects.get(username=TESTUSER)
        self.place = Place(name="Kiberpipa", note="Bla", is_public=True)
        self.place.save()
        self.project = Project(id=23, name="Tehnicarjenje", responsible=self.user)
        self.project.save(200)
        self.category = Category(name="Drugo", note="Another bla.")
        self.category.save()
        self.tip = TipSodelovanja(name="Predavatelj")
        self.tip.save()

    def create_new_image(self):
        self.client.login(username=TESTUSER, password=TESTPASSWORD)

        resp = self.client.get("/intranet/image_crop_tool/")
        self.assertEqual(resp.status_code, 200)

        resp = self.client.post("/intranet/tmp_upload/", {"foo": ""})
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)["status"], "no image uploaded")

        # TODO: test .png
        f = open(os.path.join(os.path.dirname(__file__), "test_fixtures", "sample-1.jpg"), "rb")
        resp = self.client.post("/intranet/tmp_upload/", {"image": f})
        f.close()

        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)["status"], "ok")
        self.assertTrue("temporary_filename" in self.client.session)
        filename = simplejson.loads(resp.content)["filename"]

        self.assertEqual(self.client.session.get("temporary_filename"), filename)

        resp = self.client.post(
            "/intranet/image_crop_tool/resize/",
            {"resize": "12,253,10,129", "filename": filename, "enter_your_email": ""},
        )
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)["status"], "ok")
        resized_filename = simplejson.loads(resp.content)["resized_filename"]

        resp = self.client.post(
            "/intranet/image_crop_tool/save/",
            {"resized_filename": resized_filename, "title": "To je naslov slike.", "enter_your_email": ""},
        )
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(simplejson.loads(resp.content)["status"], "ok")

        self.image_id = IntranetImage.objects.all()[0].id

    def test_event_lifetime(self):
        self.client.login(username=TESTUSER, password=TESTPASSWORD)

        self.create_new_image()

        resp = self.client.get("/intranet/events/create/")
        self.assertEqual(resp.status_code, 200)

        now = datetime.datetime.now()
        tomorrow_noon = datetime.datetime(now.year, now.month, now.day, 12, 0) + datetime.timedelta(2)
        tomorrow_noon_fifteen = datetime.datetime(now.year, now.month, now.day, 13, 0) + datetime.timedelta(2)

        createdata = {
            "event_repeat": 0,
            "event_repeat_freq": 1,
            "event_repeat_freq_type": 0,
            "title": u"Dogodek v Kleti",
            "project": self.project.id,
            "authors": u"Gašper Žejn - Predavatelj",
            "tip": 1,
            "category": self.category.id,
            "language": "sl",
            "responsible": User.objects.get(username=TESTUSER).id,
            "public": "on",
            "start_date": tomorrow_noon.strftime("%Y/%m/%d %H:%M"),
            "end_date": tomorrow_noon_fifteen.strftime("%Y/%m/%d %H:%M"),
            "require_technician": "on",
            "require_video": "on",
            "place": self.place.id,
            "slides": "",
            "event_image": self.image_id,
            "announce": "Test event for intranet tests.",
            "note": "",
            "enter_your_email": "",
        }
        resp = self.client.post("/intranet/events/create/", createdata)
        self.assertEqual(resp.status_code, 302)

        # if we don't get location, form failed
        self.assertRedirects(resp, "/intranet/events/")

        event_id = 1

        # validate urls
        resp = self.client.get("/event/dogodek-v-kleti-1/", follow=True)
        self.assertRedirects(resp, "/sl/event/dogodek-v-kleti-1/")

        resp = self.client.get("/sl/event/dogodek-v-kleti-1/")
        self.assertEqual(resp.status_code, 200)

        # new event is in the events overview page
        resp = self.client.get("/intranet/events/")
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.content.find("/intranet/events/%d/edit" % event_id) > -1, True)

        # TODO: test archive events

        # add emails to be notified
        email = "*****@*****.**"
        resp = self.client.post(
            "/intranet/events/%s/emails/" % event_id, {"emails": email, "enter_your_email": ""}, follow=True
        )
        self.assertEqual(resp.status_code, 200)

        # TODO: test dezurni for events

        # volunteer
        resp = self.client.get("/intranet/events/%s/technician/take/" % event_id, follow=True)
        self.assertEqual(resp.status_code, 200)

        # TODO: test if techie is set
        self.assertTrue(resp.content.find("%s/technician/cancel/" % event_id) > 0)

        # cancel
        resp = self.client.get("/intranet/events/%s/technician/cancel/" % event_id, follow=True)
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp.content.find("%s/technician/cancel/" % event_id), -1)

        diarydata = {
            "log_formal": "no kidding",
            "log_informal": "just joking",
            "length": "4",
            "uniqueSpot": event_id,
            "enter_your_email": "",
        }

        self.client.get("/intranet/events/%s/technician/take/" % event_id, follow=True)
        resp = self.client.get("/event/dogodek-v-kleti-%s/" % event_id, follow=True)
        # TODO: add diary for event

        # test ical
        # TODO: move to www tests
        resp = self.client.get("/sl/calendar/ical/")
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(resp._headers["content-type"][1].startswith("text/calendar"), True)
        self.assertTrue(
            resp.content.startswith(
                "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Kiberpipa//NONSGML intranet//EN\r\nBEGIN:VEVENT\r\nSUMMARY:"
            )
        )