stevepiercy / deformdemo

Deform form generation framework demo application

Home Page:http://deformdemo.repoze.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deform Demo

image

Demonstration application for the Deform Python HTML form library.

This application is tested on Python versions 3.6, 3.7, 3.8, and 3.9, and PyPy3.

Online version

Visit https://deformdemo.pylonsproject.org

Docker version

Build the Docker image for deformdemo and tag it.

Run the built image with Docker.

Then in your browser, visit http://localhost:8000

To stop the docker container, find its NAME and issue the stop command.

From source

Install functional test requirements

The deformdemo application serves as a target for functional testing during Deform's development. A suite of Selenium tests may be run against a local instance of the demonstration application. It is wise to run these tests using the following steps before submitting a pull request.

First prepare the functional test environment by installing requirements. We will assume that you put your projects in your user directory, although you can put them anywhere.

Install Python development and testing requirements

The following command will install requirements for development and testing of deformdemo. It performs editable installs of Colander and Deform into your virtual environment's src directory, and deformdemo's testing requirements into lib/<python.version>/site-packages directory.

Install Firefox latest

macOS

Download the latest version of Firefox for your platform.

Open the .dmg (macOS), and drag the Firefox icon to:

~/projects/deformdemo/

Linux (Debian)

Use cURL or wget. See the Firefox download README.txt for instructions. For example on Linux:

Decompress the downloaded file.

geckodriver

Install the latest release of geckodriver.

gettext

The functional tests require the installation of the GNU gettext utilities, specifically msgmerge and msgfmt. Use your package manager to install these requirements.

macOS

Use Homebrew.

If you ever have problems building packages, you can always unlink it.

Linux (Debian)

Selenium

Selenium was already installed via $VENV/bin/pip install -Ur requirements-dev.txt.

Running the Demo's Functional Tests

  • Start the deformdemo application as described above in "Running the Demo". Leave the terminal window running this application open, and open a second terminal window to perform the below steps.
  • In the second terminal window, go to the "deformdemo" checkout directory you created above in "Running the Demo".

  • Set an environment variable to add your local checkout of Deform to your PATH. It must to be set before running tox or pytest, otherwise Firefox or Chrome will not start and will return an error message such as 'geckodriver' executable needs to be in PATH.

  • Run the tests.

    $VENV is defined as it was in "Running the Demo" above.

  • You will (hopefully) see Firefox pop up and it will begin to display in quick succession the loading of pages. The tests will run for five or ten minutes.
  • Test success means that the console window on which you ran pytest shows a bunch of dots, a test summary, then OK. If it shows a traceback, FAILED, or anything other than a straight line of dots, it means there was an error.
  • Fix any errors by modifying your code or by modifying the tests to expect the changes you've made.

Testing an Alternate Renderer Implementation

  • Copy the demo.ini file from this demo package to your renderer's package.
  • Change the deform.renderer key in the demo.ini copy to point at your renderer (it's a Python dotted name).
  • Run pserve /path/to/your/copy/of/demo.ini.
  • Run the Selenium tests as above.

About

Deform form generation framework demo application

http://deformdemo.repoze.org

License:Other


Languages

Language:Python 99.0%Language:Shell 0.6%Language:Dockerfile 0.4%