def test_create_rivets_bindings(self):
        document = create_document_with_placeholders()
        placeholder = get_document_placeholders(document.id)[0]
        placeholder.display_name = '[[BAZ]]'
        section_text = 'foo bar foobar [[BAR||BAZ]]'

        self.assertEquals(
            create_rivets_bindings(placeholder, section_text),
            'foo bar foobar <input id="[[BAZ]]" placeholder="[[BAZ]]" name="[[BAZ]]" class="template-placeholder" rv-value="template.placeholder_BAZ"value="None">'
        )

        # assert that datepickers are added with the proper type
        placeholder.type = 2
        self.assertEquals(
            create_rivets_bindings(placeholder, section_text),
            'foo bar foobar <input id="[[BAZ]]" placeholder="[[BAZ]]" name="[[BAZ]]" class="template-placeholder datepicker" rv-value="template.placeholder_BAZ"value="None">'
        )
    def test_edit_document_sections(self):
        document = create_document_with_placeholders()
        request = self.client.get('/generate/' + str(document.id) + '/edit')
        self.assertEquals(request.status_code, 302)
        self.assertEquals(request.location, 'http://localhost/generate/1/edit/1')

        request = self.client.get('/generate/1/edit/1')
        document_placeholder = self.get_context_variable('form')._fields['[[BAZ]]']
        self.assertEquals(document_placeholder.rv_data_input, 'template.placeholder_BAZ')
        self.assertEquals(document_placeholder.name, '[[BAZ]]')

        post = self.client.post('/generate/1/edit/1', data={
            '[[BAZ]]': 'test'
        })

        # assert that the value has changed
        self.assertEquals(DocumentPlaceholder.query.first().value, 'test')
        self.assert_flashes('Changes successfully saved!', expected_category='alert-success')
        self.assertEquals(post.status_code, 302)
        self.assertEquals(post.location, 'http://localhost/generate/1/edit/1')