This page appears in our Guidelines for Writing PTL Tests and PTL Architecture.
Test File ConventionsEach test file contains one test suite. Name: pbs_<feature name>.py - Start file name with pbs_ then use feature name - Use only lower-case characters and the underscore (“_”) (this is the only special character allowed) - Start comments inside filename with a single # (No triple/single quotes) - No camel case needed in test file name Examples: pbs_reservations.py, pbs_preemption.py - Permission for file should be 0644 Test Suite ConventionsEach test suite is a Python class made up of tests. Each test is a method in the class. Name: Test<Feature> - Start name of test suite with with string “Test” - Use unique, English-language explanatory name - Use naming conventions for Python Class names (Camel case) - Docstring is mandatory. This gives broad summary of tests in the suite - Start comments with a single # (No triple/single quotes) - Do not use ticket ID Examples: TestReservations, TestNodesQueues Test Case ConventionsEach test is a Python method and is a member of a Python class defining a test suite. A test is also called a test case. Name: test_<test description> - Start test name with "test_", then use all lower case alphanumeric for the test description - Make name unique, accurate, & explanatory, but concise; can have multiple words if needed - Docstring is mandatory. This gives summary of the whole test case - Tagging is optional. Tag can be based on category in which the test belongs. Ex: :@tags('smoke') ### leading colon? - Test case name need not include the feature name (as it will be part of the test suite anyways) - Start comments with a single # (No triple/single quoted comments) Examples: test_create_routing_queue, test_finished_jobs Inherited Python ClassesPTL is derived from and inherits classes from the Python unittest unit testing framework. PTL test suites are directly inherited from the unittest TestCase class. |