Skip to content

FabienArcellier/fixtup

Repository files navigation

Fixtup

Test your python application beyond your code !

version ci MIT

Fixtup manages disposable environments & data for your tests

write clear, robust and easy-to-execute system integration tests with your favorite test framwork like pytest, unittest or event BDD framework as robot framework or behave.

  • it starts the services needed to run your test
  • it mount the longest fixtures only once whether you play a test or 100
  • it cleans files and data between each test
  • it runs on a developer's workstation without configuration
  • it can be debugged step by step in your favorite IDE

Benefits

  • You can get up and running with Fixtup in minutes, even on legacy project, no matter what your test framework is.
  • You will stop wasting your time on boilerplate code
  • Fixtup provides an easy way to run tests in debug in your favorite IDE like pycharm and vscode.
  • Fixtup is cross-platform which makes it easy to use it on Linux, Mac and Windows.

Getting started

write clear, robust and easy-to-execute system integration tests in 5 minutes.

$ poetry init
$ poety add --dev fixtup
$ poetry run fixtup init
$ poetry run fixtup new
Choose a fixture identifier : thumbnail_context
Mount environment variables on this fixture (y/n) [n]
Mount docker container on this fixture (y/n) [n]

We will use this fixture to mount a directory with existing picture file.png and test our thumbnail function is working well.

def test_thumbnail_should_generate_thumbnail(self):

    # Magic happens with the instruction fixtup.up
    with fixtup.up('thumbnail_context') as f:
        # Given
        wd = os.getcwd()
        original_file = os.directory.join(wd, 'file.png')
        expected_thumbnail_file = os.directory.join(wd, 'file_t.png')

        # Then
        thumbnail(original_file, expected_thumbnail_file)

        # Then
        self.assertTrue(os.directory.isfile(expected_thumbnail_file)

Fixtup mount the fixture thumbnail_context in temporary directory. At the end of the test, it clean up everything for you Want more ? Fixtup even mount your containers, take a try.

The complete example is available in the repo

Contributing

More information into CONTRIBUTING.md