Esempio n. 1
0
class TalksTestCase(unittest.TestCase, TestBedInitializer):
    def setUp(self):
        self.init_testbed_for_datastore_tests()
        self.init_django_settings()
        self.room1 = Room(name="sala1")
        self.room2 = Room(name="sala2")
        room_key1 = self.room1.put()
        room_key2 = self.room2.put()
        self.attendant_key = Attendant.create("Ponente1", "Apellido1", "*****@*****.**", "Zaragoza", False).put()
        self.talk1 = Talk(title="Titulo1", speaker=self.attendant_key, room=room_key1, session=4)
        self.talk1.put()
        Talk(title="Titulo2", speaker=self.attendant_key, room=room_key2).put()
        Talk(title="Titulo3", speaker=self.attendant_key, room=room_key1).put()
        self.talk_key_4 = Talk(title="Titulo4", speaker=self.attendant_key).put()

    def test_search_unexisting_attendant(self):
        attendant = Attendant.all().filter("name", "PonenteN").fetch(1000)
        self.assertFalse(attendant)

    def test_fetch_talks_from_attendant(self):
        attendant = Attendant.all().filter("first_name", "Ponente1").get()
        self.assertEquals("Titulo1", attendant.talks[0].title)
        self.assertEquals("Titulo2", attendant.talks[1].title)

    def test_create_talk(self):
        talk = Talk.create_talk("Titulo5", self.attendant_key)
        self.assertEquals("*****@*****.**", talk.speaker.email)

    def test_add_room_to_talk(self):
        talk = Talk.add_room_to_talk(self.talk_key_4.id(), self.room1.key())
        self.assertEquals("sala1", talk.room.name)

    def test_get_talks_from_room(self):
        talks = Talk.get_talks_from_room(self.room1.key())
        self.assertEqual("Titulo1Titulo3", talks[0].title + talks[1].title)

    def test_get_talks_during_hour(self):
        Talk.create_talk("Charla1", self.attendant_key, session=1).put()
        Talk.create_talk("Charla2", self.attendant_key, session=1).put()
        talks = Talk.get_talks_during_session(1)
        self.assertEquals("Charla1Charla2", talks[0].title + talks[1].title)

    def test_serialize_to_json(self):
        expected = {
            "room": {"name": u"sala1"},
            "title": "Titulo1",
            "duration": 1,
            "session": 4,
            "speaker": {
                "city": u"Zaragoza",
                "first_name": u"Ponente1",
                "last_name": u"Apellido1",
                "twitter_id": u"",
                "computers_needed": False,
                "speaker": False,
                "email": u"*****@*****.**",
            },
            "time": "13:00",
            "date": "2012-06-23",
            "description": "",
        }
        logging.error("Talk json:  %s " % self.talk1.to_json())
        self.assertEqual(expected, self.talk1.to_json())