def test_validate(self): """Tests Language.validate""" # Create test set with valid data valid_test_set = [ "python", "java", "cpp", "c", u"java", "JAVA", ] # Add expected response valid_return_value = None for i, test in enumerate(valid_test_set): valid_test_set[i] = (test, valid_return_value) # Create test set with invalid data unsupported_error = "Unsupported language {}" invalid_type_error = "Parameter language must be a string" # Create test set with unsupported languages unsupported_test_set = [ "rand", "blah", "1234", ".py", "python_", "\x03", ] # Create test set with invalid type invalid_type_test_set = [ 1234, b"java", ] # Add expected results for i, test in enumerate(unsupported_test_set): unsupported_test_set[i] = (test, unsupported_error.format(test)) for i, test in enumerate(invalid_type_test_set): invalid_type_test_set[i] = (test, invalid_type_error.format(test)) # Merge invalid test sets invalid_test_set = unsupported_test_set + invalid_type_test_set # Merge valid test sets test_set = valid_test_set + invalid_test_set # Run test for all tests in test_set for test in test_set: self.assertEqual(Language.validate(test[0]), test[1])