Ejemplo n.º 1
0
    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])