def test_has_traits(self):

        module = self.code_browser.read_file(
            os.path.join(get_path(CodeBrowserTestCase), 'example_1.py')
        )

        # Check the module name and documentation.
        self.assertTrue(module.name.endswith('example_1'))

        # Check that the module contains the specified class.
        klass = module.klasses.get('Base')
        self.assertNotEqual(None, klass)

        # Check the class' base class.
        self.assertEqual(['HasTraits'], klass.bases)

        # Check that the class has the appropriate traits and methods.
        self.assertEqual(2, len(klass.traits))
        self.assertIn("x", klass.traits)
        self.assertIn("y", klass.traits)

        self.assertEqual(2, len(klass.methods))
        self.assertIn("foo", klass.methods)
        self.assertIn("bar", klass.methods)

        return


# Entry point for stand-alone testing.
Test creating a Procfile build via an API Hook
dataset/ETHPy150Open enthought/envisage/envisage/developer/code_browser/tests/code_browser_test_case.py/CodeBrowserTestCase.test_has_traits--crossover with--dataset/ETHPy150Open deis/deis/controller/api/tests/test_hooks.py/HookTest.test_build_hook_procfile