PTL Test Structures and Conventions
This page appears in our Guidelines for Writing PTL Tests and PTL Architecture. Each 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 Each 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 Each 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 PTL is derived from and inherits classes from the Python unittest unit testing framework. PTL test suites are directly inherited from the unittest TestCase class.Test File Conventions
Test Suite Conventions
Test Case Conventions
Inherited Python Classes