Esempio n. 1
0
    def test_addform_add(self):
        import ptahcms
        from ptahcms.forms import AddForm
        ptah.auth_service.set_userid(ptah.SUPERUSER_URI)

        container = Container()
        request = DummyRequest(POST={
            'title': 'Test Content',
            'form.buttons.add': 'Add'
        })
        request.root = container
        request.root.__path__ = '/'
        request.root.__root_path__ = '/'

        form = AddForm(container, request)

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__

        res = form.update()

        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(res.headers['location'], '/test-content/')
        self.assertIn('New content has been created.',
                      ptah.view.render_messages(request))
Esempio n. 2
0
    def test_addform_choosename(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()

        form = AddForm(container, DummyRequest())

        name = form.chooseName(title='Test title')
        self.assertEqual(name, 'test-title')
Esempio n. 3
0
    def test_addform_choosename(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()

        form = AddForm(container, DummyRequest())

        name = form.chooseName(title='Test title')
        self.assertEqual(name, 'test-title')
Esempio n. 4
0
    def test_addform_update_type_check_context(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()

        form = AddForm(container, DummyRequest())

        Content.__type__.permission = ptahcms.NOT_ALLOWED
        form.tinfo = Content.__type__

        self.assertRaises(HTTPForbidden, form.update)
Esempio n. 5
0
    def test_addform_name_widgets(self):
        import ptahcms
        from ptahcms.forms import AddForm

        form = AddForm(Container(), DummyRequest())

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        self.assertIsNotNone(form.name_widgets)
        self.assertIn('__name__', form.name_widgets)
Esempio n. 6
0
    def test_addform_basics(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()

        form = AddForm(container, DummyRequest())
        form.tinfo = Content.__type__

        self.assertIs(form.fields, Content.__type__.fieldset)
        self.assertEqual(form.label, 'Add %s' % Content.__type__.title)
        self.assertEqual(form.description, Content.__type__.description)
Esempio n. 7
0
    def test_addform_basics(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()

        form = AddForm(container, DummyRequest())
        form.tinfo = Content.__type__

        self.assertIs(form.fields, Content.__type__.fieldset)
        self.assertEqual(form.label, 'Add %s'%Content.__type__.title)
        self.assertEqual(form.description, Content.__type__.description)
Esempio n. 8
0
    def test_addform_no_name_widgets(self):
        import ptahcms
        from ptahcms.forms import AddForm

        form = AddForm(Container(), DummyRequest())

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.name_show = False
        form.update()

        self.assertIsNone(form.name_widgets)
Esempio n. 9
0
    def test_addform_update_type_check_context(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()

        form = AddForm(container, DummyRequest())

        Content.__type__.permission = ptahcms.NOT_ALLOWED
        form.tinfo = Content.__type__

        self.assertRaises(HTTPForbidden, form.update)
Esempio n. 10
0
    def test_addform_add_errors(self):
        import ptahcms
        from ptahcms.forms import AddForm
        ptah.auth_service.set_userid(ptah.SUPERUSER_URI)

        container = Container()
        request = DummyRequest(POST={'form.buttons.add': 'Add'})

        form = AddForm(container, request)
        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        self.assertIn('Please fix indicated errors.',
                      ptah.view.render_messages(request))
Esempio n. 11
0
    def test_addform_ctor(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()
        form = AddForm(container, DummyRequest())
        self.assertIs(form.container, container)
Esempio n. 12
0
    def test_addform_create(self):
        import ptahcms
        from ptahcms.forms import AddForm
        ptah.auth_service.set_userid(ptah.SUPERUSER_URI)

        form = AddForm(Container(), DummyRequest())

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        content = form.create(**{'title': 'Test Content',
                                 '__name__': 'page.html'})

        self.assertEqual(content.__name__, 'page.html')
        self.assertIsInstance(content, Content)
Esempio n. 13
0
    def test_addform_add_errors(self):
        import ptahcms
        from ptahcms.forms import AddForm
        ptah.auth_service.set_userid(ptah.SUPERUSER_URI)

        container = Container()
        request = DummyRequest(
            POST = {'form.buttons.add': 'Add'})

        form = AddForm(container, request)
        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        self.assertIn('Please fix indicated errors.',
                      ptah.view.render_messages(request))
Esempio n. 14
0
    def test_addform_cancel(self):
        import ptahcms
        from ptahcms.forms import AddForm
        ptah.auth_service.set_userid(ptah.SUPERUSER_URI)

        container = Container()
        request = DummyRequest(POST={'form.buttons.cancel': 'Cancel'})

        form = AddForm(container, request)

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__

        res = form.update()

        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(res.headers['location'], '.')
Esempio n. 15
0
    def test_addform_update_suffix_from_type(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()

        form = AddForm(container, DummyRequest())

        Content.__type__.name_suffix = '.xml'
        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED

        form.tinfo = Content.__type__
        form.update()

        self.assertEqual(form.name_suffix, '.xml')

        Content.__type__.name_suffix = ''
        Content.__type__.permission = ptahcms.NOT_ALLOWED
Esempio n. 16
0
    def test_addform_update_suffix_from_type(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()

        form = AddForm(container, DummyRequest())

        Content.__type__.name_suffix = '.xml'
        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED

        form.tinfo = Content.__type__
        form.update()

        self.assertEqual(form.name_suffix, '.xml')

        Content.__type__.name_suffix = ''
        Content.__type__.permission = ptahcms.NOT_ALLOWED
Esempio n. 17
0
    def test_addform_extract_with_errors(self):
        import ptahcms
        from ptahcms.forms import AddForm

        form = AddForm(Container(), DummyRequest(
            POST={'__name__': 't/est-content'}))

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        data, errors = form.extract()

        self.assertEqual(len(errors), 2)
        self.assertEqual(errors[0].field.name, 'title')
        self.assertEqual(errors[0].msg, 'Required')
        self.assertEqual(errors[1].field.name, '__name__')
        self.assertEqual(errors[1].msg, "Names cannot contain '/'")
Esempio n. 18
0
    def test_addform_cancel(self):
        import ptahcms
        from ptahcms.forms import AddForm
        ptah.auth_service.set_userid(ptah.SUPERUSER_URI)

        container = Container()
        request = DummyRequest(
            POST = {'form.buttons.cancel': 'Cancel'})

        form = AddForm(container, request)

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__

        res = form.update()

        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(res.headers['location'], '.')
Esempio n. 19
0
    def test_addform_extract(self):
        import ptahcms
        from ptahcms.forms import AddForm

        form = AddForm(Container(), DummyRequest(
            POST={'title': 'Test Content',
                  '__name__': 'test-content'}))

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        data, errors = form.extract()

        self.assertEqual(len(errors), 0)
        self.assertEqual(len(data), 3)
        self.assertIn('title', data)
        self.assertIn('description', data)
        self.assertIn('__name__', data)
Esempio n. 20
0
    def test_addform_add(self):
        import ptahcms
        from ptahcms.forms import AddForm
        ptah.auth_service.set_userid(ptah.SUPERUSER_URI)

        container = Container()
        request = DummyRequest(
            POST = {'title': 'Test Content',
                    'form.buttons.add': 'Add'})
        request.root = container
        request.root.__path__ = '/'
        request.root.__root_path__ = '/'

        form = AddForm(container, request)

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__

        res = form.update()

        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(res.headers['location'], '/test-content/')
        self.assertIn('New content has been created.',
                      ptah.view.render_messages(request))
Esempio n. 21
0
    def test_addform_validate_name(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()
        container['test'] = Content()

        form = AddForm(container, DummyRequest())

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        errors = []
        form.validate({'__name__': 'test'}, errors)

        self.assertEqual(len(errors), 1)
        self.assertIs(errors[0].field, form.name_widgets['__name__'])
        self.assertEqual(errors[0].msg, 'Name already in use')

        errors = []
        form.validate({'__name__': 'normal-name'}, errors)
        self.assertEqual(len(errors), 0)
Esempio n. 22
0
    def test_addform_extract_with_errors_no_name(self):
        import ptahcms
        from ptahcms.forms import AddForm

        form = AddForm(Container(),
                       DummyRequest(POST={'__name__': 't/est-content'}))

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.name_show = False
        form.update()

        data, errors = form.extract()

        self.assertEqual(len(errors), 1)
        self.assertEqual(errors[0].field.name, 'title')
        self.assertEqual(errors[0].msg, 'Required')
Esempio n. 23
0
    def test_addform_create_empty_name(self):
        import ptahcms
        from ptahcms.forms import AddForm
        ptah.auth_service.set_userid(ptah.SUPERUSER_URI)

        form = AddForm(Container(), DummyRequest())

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        content = form.create(**{'title': 'Test Content'})

        self.assertEqual(content.__name__, 'test-content')
        self.assertEqual(content.title, 'Test Content')
        self.assertIsInstance(content, Content)
Esempio n. 24
0
    def test_addform_validate_name(self):
        import ptahcms
        from ptahcms.forms import AddForm

        container = Container()
        container['test'] = Content()

        form = AddForm(container, DummyRequest())

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.update()

        errors = []
        form.validate({'__name__': 'test'}, errors)

        self.assertEqual(len(errors), 1)
        self.assertIs(errors[0].field, form.name_widgets['__name__'])
        self.assertEqual(errors[0].msg, 'Name already in use')

        errors = []
        form.validate({'__name__': 'normal-name'}, errors)
        self.assertEqual(len(errors), 0)
Esempio n. 25
0
    def test_addform_extract_no_name(self):
        import ptahcms
        from ptahcms.forms import AddForm

        form = AddForm(
            Container(),
            DummyRequest(POST={
                'title': 'Test Content',
                '__name__': 'test-content'
            }))

        Content.__type__.permission = ptahcms.NO_PERMISSION_REQUIRED
        form.tinfo = Content.__type__
        form.name_show = False
        form.update()

        data, errors = form.extract()

        self.assertEqual(len(errors), 0)
        self.assertEqual(len(data), 2)
        self.assertIn('title', data)
        self.assertIn('description', data)