Python Unittest Framework for Visual Effects (Under Development)

This is one of my long term plan, I started doing Test Driven Development(TDD) for last 4-5 year. It changed the way, how I did my developments.

As a FX artist become developer, I use to write codes in single files/modules. Every functions, variable, etc… will be in the same module. Once my lead ask me to write unittests for my python tools, it was a shock for me. I don’t know what to do(actually don’t know, what a unittest is in python). Started looking into others tests and codes. Be honest, it didn’t took a whole lot of time to understand it. Once I understood how TDD works, or how you can write a testable code. It is like playing a game.

I was trying to make as framework for testing the code I develops for me. And I finally have a starting point for that. I started a new PyPi project and added a basic structure now.

PyPi Project : bcTesting
PyPi Page : https://pypi.python.org/pypi/bcTesting
GitHub Link : https://github.com/barishcb/testing

Installation

Installing bcTesting is very simple. Once you download and unzip the package, you just have to execute the standard python setup.py install. The setup script will then place the bcTesting module into site-packages in your Python’s installation library.

Alternatively, since bcTesting is listed in the Python Package Index (PyPI), you can install it using your favorite Python packaging/distribution tool, for example with:

It’s recommended to run _build_tables.py in the bcTesting code directory after installation to make sure the parsing tables are pre-generated. This can make your code run faster.

How to Use

Using bcTesting is very simple. As it is just extension of testtools, you can directly import it and use it in your code. You have to replace bcTesting.testBase.TestCase insted of  unittest.TestCase or teststools.TestCase.

TODO

  • Testing Framework for Autodesk Maya (Currently under development)
  • Testing Framework for The Foundry Nuke
  • Testing Framework for The Foundry Katana

Example Project

If you want to look into the implementation please check this project.

Project : bcTools
GitHub Link : https://github.com/barishcb/tools

Your Suggestions

I hope this will once the project is stable and matured. It will make your like easy as a visual effect python developer.  This is still under development, so there will issues feel free to contact me. Aslo hoping suggestions and improvements  also.

Published by

Barish Chandran

Have got over 12 years of experience in Animation and VFX industry in Particle Effects, Lighting and Programming areas. I started my animation career as Dynamic FX artist and I have credit in more than 30 movie and CGI Series. Then started developing tools and programs for Animation. Now am working as Pipeline Software Developer Lead at MPC.

Leave a Reply

Your email address will not be published. Required fields are marked *