Example #1
0
    def run_all_tests_for_package(self, package):
        # Common tests to be run on each package
        suite = []
        test_loader = opus_unittest.TestLoader()
        TestForSQLPassword.modul = package
        TestPackageSyntax.modul = package
        suite += test_loader.loadTestsFromTestCase(TestForSQLPassword)
        suite += test_loader.loadTestsFromTestCase(TestPackageSyntax)
        test_suite = opus_unittest.TestSuite(suite)
        opus_unittest.TextTestRunner(verbosity=2).run(test_suite)
        #TestForSQLPassword(package_name = package).test_no_sql_password_in_files()
        #TestPackageSyntax(package_name = package).test_no_opus_syntax_violations()
        
        # Default
        loader = PackageTestLoader().load_tests_from_package
        
        xml_file_name = 'TEST_all_tests.xml'

        # Unlike 2.3, Python 2.4 complains about MySQL warnings. 
        #    We don't want to hear it.
        filterwarnings('ignore', "Can't (create|drop) database '[^']*'; ")
        filterwarnings('ignore', "Unknown table '[^']*'")
        filterwarnings('ignore', "Table '[^']*' already exists")
        
        # Will we do integration tests?
        for opt in sys.argv:
            if opt in ('-i','-I','--integration'):
                sys.argv.remove(opt)
                loader = PackageTestLoader().load_integration_tests_from_package
                xml_file_name = 'TEST_all_integration_tests.xml'
        
        loader(package)

        output_as_xml = False
        for opt in sys.argv:
            if opt in ('-x','-X','--xml'):
                sys.argv.remove(opt)
                output_as_xml = True

        if output_as_xml:
            file_path = os.path.join(OpusPackage().get_path_for_package(package), 'tests', xml_file_name)
            opus_unittest.main(testRunner=OpusXMLTestRunner(package, stream=open(file_path, 'w')))
        else:
            opus_unittest.main(testRunner=OpusTestRunner(package))
from opus_core.tests import opus_unittest
from opus_core.tests.utils.variable_tester import VariableTester
from numpy import array

class Tests(opus_unittest.OpusTestCase):
    def test_my_inputs(self):
        tester = VariableTester(
            __file__,
            package_order=['urbansim'],
            test_data={
                'gridcell':{
                    'grid_id': array([1,2,3,4]),
                    'relative_x': array([1,2,1,2]),
                    'relative_y': array([1,1,2,2]),
                    'number_of_jobs': array([100, 500, 1000, 1500]),
                    },
                'urbansim_constant':{
                    "walking_distance_circle_radius": array([150]),
                    'cell_size': array([150]),
                }
            }
        )
        
        should_be = array([1800, 3100, 4600, 6000])
        tester.test_is_equal_for_variable_defined_by_this_module(self, should_be)


if __name__=='__main__':
    opus_unittest.main()
from urbansim.variable_test_toolbox import VariableTestToolbox
from numpy import array
from numpy import ma


class Tests(opus_unittest.OpusTestCase):
    variable_name = "urbansim.zone.vacant_industrial_job_space"

    def test_my_inputs(self):
        number_of_industrial_jobs = array([12, 0, 39, 0])
        industrial_sqft = array([1200, 16, 3900, 15])
        industrial_sqft_per_job = array([20, 3, 30, 0])

        values = VariableTestToolbox().compute_variable(self.variable_name, {
            "zone": {
                "number_of_industrial_jobs": number_of_industrial_jobs,
                "industrial_sqft": industrial_sqft,
                "industrial_sqft_per_job": industrial_sqft_per_job
            }
        },
                                                        dataset="zone")
        should_be = array([48.0, 5.0, 91.0, 0.0])

        self.assertEqual(ma.allequal(values, should_be),
                         True,
                         msg="Error in " + self.variable_name)


if __name__ == '__main__':
    opus_unittest.main()