示例#1
0
    def test_list(self):
        from c2cgeoform.views import list
        from models_test import Person
        DBSession.add(Person(name="Peter", first_name="Smith"))
        DBSession.add(Person(name="John", first_name="Wayne"))

        request = testing.DummyRequest()
        request.matchdict['schema'] = 'tests_persons'
        response = list(request)

        self.assertTrue('entities' in response)
        entities = response['entities']
        self.assertEquals(2, len(entities))
示例#2
0
    def test_list(self):
        from c2cgeoform.views import list
        from models_test import Person
        DBSession.add(Person(name="Peter", first_name="Smith"))
        DBSession.add(Person(name="John", first_name="Wayne"))

        request = self._get_request()
        request.matchdict['schema'] = 'tests_persons'
        response = list(request)

        self.assertTrue('entities' in response)
        entities = response['entities']
        self.assertEquals(2, len(entities))

        schema = response['schema']
        self.assertEquals(['id', 'name'], schema.list_fields)
示例#3
0
    def test_view_user(self):
        from c2cgeoform.views import view_user
        from models_test import Person
        person = Person(name="Peter", first_name="Smith", hash="123-456")
        DBSession.add(person)
        DBSession.flush()

        request = self._get_request()
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['hash'] = "123-456"
        response = view_user(request)

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('Peter' in form_html)
        self.assertTrue('Smith' in form_html)
示例#4
0
    def test_view_user(self):
        from c2cgeoform.views import view_user
        from models_test import Person
        person = Person(name="Peter", first_name="Smith", hash="123-456")
        DBSession.add(person)
        DBSession.flush()

        request = self._get_request()
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['hash'] = "123-456"
        response = view_user(request)

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('Peter' in form_html)
        self.assertTrue('Smith' in form_html)
示例#5
0
    def test_edit_submit_invalid(self):
        from c2cgeoform.views import edit
        from models_test import Person
        person = Person(name="Peter", first_name="Smith")
        DBSession.add(person)
        DBSession.flush()

        request = testing.DummyRequest()
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['id'] = str(person.id)
        request.POST['id'] = str(person.id)
        request.POST['submit'] = 'submit'
        response = edit(request)

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('class="errorMsgLbl"' in form_html)
示例#6
0
    def test_edit_submit_invalid(self):
        from c2cgeoform.views import edit
        from models_test import Person
        person = Person(name="Peter", first_name="Smith")
        DBSession.add(person)
        DBSession.flush()

        request = self._get_request()
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['id'] = str(person.id)
        request.POST['id'] = str(person.id)
        request.POST['submit'] = 'submit'
        response = edit(request)

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('class="errorMsgLbl"' in form_html)
示例#7
0
    def test_view_admin(self):
        from c2cgeoform.views import view_admin
        from models_test import Person
        person = Person(name="Peter", first_name="Smith")
        DBSession.add(person)
        DBSession.flush()

        request = self._get_request()
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['id'] = str(person.id)
        response = view_admin(request)

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('name="id"' in form_html)
        self.assertTrue('value="' + str(person.id) + '"' in form_html)
        self.assertTrue('Peter' in form_html)
        self.assertTrue('Smith' in form_html)
示例#8
0
    def test_view(self):
        from c2cgeoform.views import view
        from models_test import Person
        person = Person(name="Peter", first_name="Smith")
        DBSession.add(person)
        DBSession.flush()

        request = testing.DummyRequest()
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['id'] = str(person.id)
        response = view(request)

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('name="id"' in form_html)
        self.assertTrue('value="' + str(person.id) + '"' in form_html)
        self.assertTrue('Peter' in form_html)
        self.assertTrue('Smith' in form_html)
示例#9
0
    def test_edit_show(self):
        from c2cgeoform.views import edit
        from models_test import Person
        person = Person(name="Peter", first_name="Smith")
        DBSession.add(person)
        DBSession.flush()

        request = self._get_request()
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['id'] = str(person.id)
        response = edit(request)

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('name="id"' in form_html)
        self.assertTrue('value="' + str(person.id) + '"' in form_html)
        self.assertTrue('value="Peter"' in form_html)
        self.assertTrue('value="Smith"' in form_html)
        self.assertTrue('name="submit"' in form_html)
示例#10
0
    def test_edit_submit_successful(self):
        from c2cgeoform.views import edit
        from models_test import Person, Phone, TagsForPerson
        person = Person(name="Peter", first_name="Smith")
        phone = Phone(number="123456789")
        person.phones.append(phone)
        tag_for_person = TagsForPerson(tag_id=0)
        person.tags.append(tag_for_person)
        DBSession.add(person)
        DBSession.flush()
        old_tag_for_person_id = tag_for_person.id

        request = testing.DummyRequest(post=MultiDict())
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['id'] = str(person.id)
        request.POST.add('id', str(person.id))
        request.POST.add('submit', 'submit')
        request.POST.add('name', 'Peter')
        request.POST.add('first_name', 'Smith')
        request.POST.add('age', '43')

        request.POST.add('__start__', 'phones:sequence')
        request.POST.add('__start__', 'phones:mapping')
        request.POST.add('id', str(phone.id))
        request.POST.add('number', '23456789')
        request.POST.add('person_id', str(person.id))
        request.POST.add('__end__', 'phones:mapping')
        request.POST.add('__start__', 'phones:mapping')
        request.POST.add('number', '123456')
        request.POST.add('__end__', 'phones:mapping')
        request.POST.add('__end__', 'phones:sequence')

        request.POST.add('__start__', 'tags:sequence')
        request.POST.add('tags', u'0')
        request.POST.add('tags', u'1')
        request.POST.add('__end__', 'tags:sequence')

        response = edit(request)

        person = DBSession.query(Person).get(person.id)
        self.assertEquals('Peter', person.name)
        self.assertEquals('Smith', person.first_name)
        self.assertEquals(43, person.age)
        self.assertEquals(2, len(person.phones))
        updated_phone = person.phones[0]
        self.assertEquals('23456789', updated_phone.number)
        self.assertEquals(phone.id, updated_phone.id)
        new_phone = person.phones[1]
        self.assertEquals('123456', new_phone.number)
        self.assertIsNotNone(new_phone.id)
        self.assertEquals(2, len(person.tags))
        tag_for_person1 = person.tags[0]
        self.assertEquals(0, tag_for_person1.tag_id)
        self.assertEquals(person.id, tag_for_person1.person_id)
        self.assertIsNotNone(tag_for_person1.id)
        # a new row is created, also for the old entry
        self.assertNotEquals(old_tag_for_person_id, tag_for_person1.id)
        tag_for_person2 = person.tags[1]
        self.assertEquals(1, tag_for_person2.tag_id)
        self.assertEquals(person.id, tag_for_person2.person_id)
        self.assertIsNotNone(tag_for_person2.id)
        tags_for_persons = DBSession.query(TagsForPerson).all()
        # check that the old entry was deleted, so that there are only 2
        self.assertEquals(2, len(tags_for_persons))

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('name="id"' in form_html)
        self.assertTrue('value="' + str(person.id) + '"' in form_html)
        self.assertTrue(
            'name="id" value="' + str(person.id) + '"' in form_html)
        self.assertTrue('name="id" value="' + str(phone.id) + '"' in form_html)
        self.assertTrue(
            'name="id" value="' + str(new_phone.id) + '"' in form_html)
        self.assertTrue(
            'name="person_id" value="' + str(person.id) + '"' in form_html)
        self.assertTrue('name="submit"' in form_html)
        self.assertTrue('Tag A' in form_html)
        self.assertTrue('Tag B' in form_html)
示例#11
0
def setup_test_data(settings):
    from c2cgeoform.models import DBSession
    import transaction

    if DBSession.query(District).get(0) is None:
        DBSession.add(District(id=0, name="Pully"))
        DBSession.add(District(id=1, name="Paudex"))
        DBSession.add(District(id=2, name="Belmont-sur-Lausanne"))
        DBSession.add(District(id=3, name="Trois-Chasseurs"))
        DBSession.add(District(id=4, name="La Claie-aux-Moines"))
        DBSession.add(District(id=5, name="Savigny"))
        DBSession.add(District(id=6, name="Mollie-Margot"))

    if DBSession.query(Situation).get(0) is None:
        DBSession.add(Situation(id=0, name="Road", name_fr="Route"))
        DBSession.add(Situation(id=1, name="Sidewalk", name_fr="Trottoir"))
        DBSession.add(Situation(id=2, name="Berm", name_fr="Berme"))
        DBSession.add(Situation(
            id=3, name="Vegetated berm", name_fr="Berme végétalisée"))
        DBSession.add(Situation(id=4, name="Green zone", name_fr="Zone verte"))
        DBSession.add(Situation(id=5, name="Cobblestone", name_fr="Pavés"))

    if DBSession.query(BusStop).count() == 0:
        _add_bus_stops(DBSession, settings['bus_stops_file'])

    if DBSession.query(Address).get(0) is None:
        DBSession.add(Address(id=0, label="Bern"))
        DBSession.add(Address(id=1, label="Lausanne"))
        DBSession.add(Address(id=2, label="Genève"))
        DBSession.add(Address(id=3, label="Zurich"))
        DBSession.add(Address(id=4, label="Lugano"))

    transaction.commit()
示例#12
0
    def setUp(self):  # noqa
        curdir = os.path.dirname(os.path.abspath(__file__))
        configfile = os.path.realpath(os.path.join(curdir, '../../tests.ini'))
        settings = get_appsettings(configfile)
        apply_local_settings(settings)
        engine = engine_from_config(settings, 'sqlalchemy.')
        DBSession.configure(bind=engine)

        from .models_test import Person, EmploymentStatus, Tag  # noqa
        Base.metadata.create_all(engine)
        self.cleanup()

        # fill some test data into the `EmploymentStatus` and `Tags` table
        DBSession.add(EmploymentStatus(id=0, name='Worker'))
        DBSession.add(EmploymentStatus(id=1, name='Employee'))
        DBSession.add(
            EmploymentStatus(id=2, name='Self-employed and contractor'))
        DBSession.add(EmploymentStatus(id=3, name='Director'))
        DBSession.add(EmploymentStatus(id=4, name='Office holder'))

        DBSession.add(Tag(id=0, name='Tag A'))
        DBSession.add(Tag(id=1, name='Tag B'))
        DBSession.add(Tag(id=2, name='Tag C'))
        DBSession.add(Tag(id=3, name='Tag D'))
        DBSession.add(Tag(id=4, name='Tag E'))

        self.request = testing.DummyRequest(post=MultiDict(),
                                            dbsession=DBSession)
        testing.setUp(request=self.request)

        config = testing.setUp()
        config.add_route('form', '/{schema}/form/')
        config.add_route('view_user', '/{schema}/form/{hash}')
        config.add_route('confirm', '/{schema}/form/confirm')
        init_deform('c2cgeoform')
 def _add_test_persons(self):
     self.person1 = Person(name="Smith", first_name="Peter")
     DBSession.add(self.person1)
     DBSession.add(Person(name="Wayne", first_name="John"))
     DBSession.add(Person(name="Elda", first_name="Hasbrouck"))
     DBSession.add(Person(name="Lashaun", first_name="Brasel"))
     DBSession.add(Person(name="Lashawna", first_name="Ashford"))
     DBSession.add(Person(name="Lesha", first_name="Snellgrove"))
     DBSession.add(Person(name="Sulema", first_name="Page"))
     DBSession.add(Person(name="Derek", first_name="Boroughs"))
     DBSession.add(Person(name="Odis", first_name="Bateman"))
     DBSession.add(Person(name="Venetta", first_name="Briganti"))
     DBSession.add(Person(name="Monte", first_name="Quill"))
     DBSession.add(Person(name="Daniel", first_name="Ruth"))
     DBSession.add(Person(name="Eloise", first_name="Hellickson"))
     DBSession.add(Person(name="Hee", first_name="Deloney"))
     DBSession.add(Person(name="Sharee", first_name="Warf"))
     DBSession.add(Person(name="Delpha", first_name="Philip"))
     DBSession.add(Person(name="Claudio", first_name="Campfield"))
     DBSession.add(Person(name="Janessa", first_name="Beatty"))
     DBSession.add(Person(name="Hollis", first_name="Richmond"))
     DBSession.add(Person(name="Karoline", first_name="Carew"))
     DBSession.add(Person(name="Bess", first_name="Papp"))
     DBSession.add(Person(name="Vada", first_name="Infantino"))
     DBSession.flush()
示例#14
0
def setup_test_data(settings):
    from c2cgeoform.models import DBSession
    import transaction

    if DBSession.query(District).get(0) is None:
        DBSession.add(District(id=0, name="Pully"))
        DBSession.add(District(id=1, name="Paudex"))
        DBSession.add(District(id=2, name="Belmont-sur-Lausanne"))
        DBSession.add(District(id=3, name="Trois-Chasseurs"))
        DBSession.add(District(id=4, name="La Claie-aux-Moines"))
        DBSession.add(District(id=5, name="Savigny"))
        DBSession.add(District(id=6, name="Mollie-Margot"))

    if DBSession.query(Situation).get(0) is None:
        DBSession.add(Situation(id=0, name="Road", name_fr="Route"))
        DBSession.add(Situation(id=1, name="Sidewalk", name_fr="Trottoir"))
        DBSession.add(Situation(id=2, name="Berm", name_fr="Berme"))
        DBSession.add(
            Situation(id=3, name="Vegetated berm",
                      name_fr="Berme végétalisée"))
        DBSession.add(Situation(id=4, name="Green zone", name_fr="Zone verte"))
        DBSession.add(Situation(id=5, name="Cobblestone", name_fr="Pavés"))

    if DBSession.query(BusStop).count() == 0:
        _add_bus_stops(DBSession, settings['bus_stops_file'])

    if DBSession.query(Address).get(0) is None:
        DBSession.add(Address(id=0, label="Bern"))
        DBSession.add(Address(id=1, label="Lausanne"))
        DBSession.add(Address(id=2, label="Genève"))
        DBSession.add(Address(id=3, label="Zurich"))
        DBSession.add(Address(id=4, label="Lugano"))

    transaction.commit()
示例#15
0
    def setUp(self):  # noqa
        curdir = os.path.dirname(os.path.abspath(__file__))
        configfile = os.path.realpath(
            os.path.join(curdir, '../../tests.ini'))
        settings = get_appsettings(configfile)
        apply_local_settings(settings)
        engine = engine_from_config(settings, 'sqlalchemy.')
        DBSession.configure(bind=engine)

        from .models_test import Person, EmploymentStatus, Tag  # noqa
        Base.metadata.create_all(engine)
        self.cleanup()

        # fill some test data into the `EmploymentStatus` and `Tags` table
        DBSession.add(EmploymentStatus(id=0, name='Worker'))
        DBSession.add(EmploymentStatus(id=1, name='Employee'))
        DBSession.add(EmploymentStatus(
            id=2, name='Self-employed and contractor'))
        DBSession.add(EmploymentStatus(id=3, name='Director'))
        DBSession.add(EmploymentStatus(id=4, name='Office holder'))

        DBSession.add(Tag(id=0, name='Tag A'))
        DBSession.add(Tag(id=1, name='Tag B'))
        DBSession.add(Tag(id=2, name='Tag C'))
        DBSession.add(Tag(id=3, name='Tag D'))
        DBSession.add(Tag(id=4, name='Tag E'))

        self.request = testing.DummyRequest(post=MultiDict(),
                                            dbsession=DBSession)
        testing.setUp(request=self.request)

        config = testing.setUp()
        config.add_route('form', '/{schema}/form/')
        config.add_route('view_user', '/{schema}/form/{hash}')
        config.add_route('confirm', '/{schema}/form/confirm')
        init_deform('c2cgeoform')
示例#16
0
def setup_test_data():
    from c2cgeoform.models import DBSession
    import transaction

    if DBSession.query(District).get(0) is None:
        DBSession.add(District(id=0, name="Pully"))
        DBSession.add(District(id=1, name="Paudex"))
        DBSession.add(District(id=2, name="Belmont-sur-Lausanne"))
        DBSession.add(District(id=3, name="Trois-Chasseurs"))
        DBSession.add(District(id=4, name="La Claie-aux-Moines"))
        DBSession.add(District(id=5, name="Savigny"))
        DBSession.add(District(id=6, name="Mollie-Margot"))

    if DBSession.query(Situation).get(0) is None:
        DBSession.add(Situation(id=0, name="Road", name_fr="Route"))
        DBSession.add(Situation(id=1, name="Sidewalk", name_fr="Trottoir"))
        DBSession.add(Situation(id=2, name="Berm", name_fr="Berme"))
        DBSession.add(Situation(
            id=3, name="Vegetated berm", name_fr="Berme végétalisée"))
        DBSession.add(Situation(id=4, name="Green zone", name_fr="Zone verte"))
        DBSession.add(Situation(id=5, name="Cobblestone", name_fr="Pavés"))

    transaction.commit()
示例#17
0
    def test_edit_submit_successful(self):
        from c2cgeoform.views import edit
        from models_test import Person, Phone, TagsForPerson
        person = Person(name="Peter", first_name="Smith")
        phone = Phone(number="123456789")
        person.phones.append(phone)
        tag_for_person = TagsForPerson(tag_id=0)
        person.tags.append(tag_for_person)
        DBSession.add(person)
        DBSession.flush()
        old_tag_for_person_id = tag_for_person.id

        request = self._get_request()
        request.matchdict['schema'] = 'tests_persons'
        request.matchdict['id'] = str(person.id)
        request.POST.add('id', str(person.id))
        request.POST.add('submit', 'submit')
        request.POST.add('name', 'Peter')
        request.POST.add('first_name', 'Smith')
        request.POST.add('age', '43')

        request.POST.add('__start__', 'phones:sequence')
        request.POST.add('__start__', 'phones:mapping')
        request.POST.add('id', str(phone.id))
        request.POST.add('number', '23456789')
        request.POST.add('person_id', str(person.id))
        request.POST.add('__end__', 'phones:mapping')
        request.POST.add('__start__', 'phones:mapping')
        request.POST.add('number', '123456')
        request.POST.add('__end__', 'phones:mapping')
        request.POST.add('__end__', 'phones:sequence')

        request.POST.add('__start__', 'tags:sequence')
        request.POST.add('tags', u'0')
        request.POST.add('tags', u'1')
        request.POST.add('__end__', 'tags:sequence')

        response = edit(request)

        person = DBSession.query(Person).get(person.id)
        self.assertEquals('Peter', person.name)
        self.assertEquals('Smith', person.first_name)
        self.assertEquals(43, person.age)
        self.assertEquals(2, len(person.phones))
        updated_phone = person.phones[0]
        self.assertEquals('23456789', updated_phone.number)
        self.assertEquals(phone.id, updated_phone.id)
        new_phone = person.phones[1]
        self.assertEquals('123456', new_phone.number)
        self.assertIsNotNone(new_phone.id)
        self.assertEquals(2, len(person.tags))
        tag_for_person1 = person.tags[0]
        self.assertEquals(0, tag_for_person1.tag_id)
        self.assertEquals(person.id, tag_for_person1.person_id)
        self.assertIsNotNone(tag_for_person1.id)
        # a new row is created, also for the old entry
        self.assertNotEquals(old_tag_for_person_id, tag_for_person1.id)
        tag_for_person2 = person.tags[1]
        self.assertEquals(1, tag_for_person2.tag_id)
        self.assertEquals(person.id, tag_for_person2.person_id)
        self.assertIsNotNone(tag_for_person2.id)
        tags_for_persons = DBSession.query(TagsForPerson).all()
        # check that the old entry was deleted, so that there are only 2
        self.assertEquals(2, len(tags_for_persons))

        self.assertTrue('schema' in response)
        self.assertTrue('form' in response)

        form_html = response['form']
        self.assertTrue('name="id"' in form_html)
        self.assertTrue('value="' + str(person.id) + '"' in form_html)
        self.assertTrue('name="id" value="' + str(person.id) +
                        '"' in form_html)
        self.assertTrue('name="id" value="' + str(phone.id) + '"' in form_html)
        self.assertTrue('name="id" value="' + str(new_phone.id) +
                        '"' in form_html)
        self.assertTrue('name="person_id" value="' + str(person.id) +
                        '"' in form_html)
        self.assertTrue('name="submit"' in form_html)
        self.assertTrue('Tag A' in form_html)
        self.assertTrue('Tag B' in form_html)
示例#18
0
def _add_test_persons():
    from models_test import Person
    DBSession.add(Person(name="Smith", first_name="Peter"))
    DBSession.add(Person(name="Wayne", first_name="John"))
    DBSession.add(Person(name="Elda", first_name="Hasbrouck"))
    DBSession.add(Person(name="Lashaun", first_name="Brasel"))
    DBSession.add(Person(name="Lashawna", first_name="Ashford"))
    DBSession.add(Person(name="Lesha", first_name="Snellgrove"))
    DBSession.add(Person(name="Sulema", first_name="Page"))
    DBSession.add(Person(name="Derek", first_name="Boroughs"))
    DBSession.add(Person(name="Odis", first_name="Bateman"))
    DBSession.add(Person(name="Venetta", first_name="Briganti"))
    DBSession.add(Person(name="Monte", first_name="Quill"))
    DBSession.add(Person(name="Daniel", first_name="Ruth"))
    DBSession.add(Person(name="Eloise", first_name="Hellickson"))
    DBSession.add(Person(name="Hee", first_name="Deloney"))
    DBSession.add(Person(name="Sharee", first_name="Warf"))
    DBSession.add(Person(name="Delpha", first_name="Philip"))
    DBSession.add(Person(name="Claudio", first_name="Campfield"))
    DBSession.add(Person(name="Janessa", first_name="Beatty"))
    DBSession.add(Person(name="Hollis", first_name="Richmond"))
    DBSession.add(Person(name="Karoline", first_name="Carew"))
    DBSession.add(Person(name="Bess", first_name="Papp"))
    DBSession.add(Person(name="Vada", first_name="Infantino"))
示例#19
0
    def setUp(self):  # noqa
        curdir = os.path.dirname(os.path.abspath(__file__))
        configfile = os.path.realpath(
            os.path.join(curdir, '../../development.ini'))
        settings = get_appsettings(configfile)
        engine = engine_from_config(settings, 'sqlalchemy.')
        DBSession.configure(bind=engine)

        from models_test import Person, EmploymentStatus, Tag  # noqa
        Base.metadata.create_all(engine)
        self.cleanup()

        # fill some test data into the `EmploymentStatus` and `Tags` table
        DBSession.add(EmploymentStatus(id=0, name='Worker'))
        DBSession.add(EmploymentStatus(id=1, name='Employee'))
        DBSession.add(EmploymentStatus(
            id=2, name='Self-employed and contractor'))
        DBSession.add(EmploymentStatus(id=3, name='Director'))
        DBSession.add(EmploymentStatus(id=4, name='Office holder'))

        DBSession.add(Tag(id=0, name='Tag A'))
        DBSession.add(Tag(id=1, name='Tag B'))
        DBSession.add(Tag(id=2, name='Tag C'))
        DBSession.add(Tag(id=3, name='Tag D'))
        DBSession.add(Tag(id=4, name='Tag E'))