def test_valid_method_post_import(self):
     # Test that it returns a classmethod after the module has been imported
     from tarfile import TarInfo
     from_file_via_validator = _string_to_attribute('tarfile.TarInfo.frombuf', type_='function')
     assert from_file_via_validator == TarInfo.frombuf
 def test_invalid_functions(self, value, message):
     with pytest.raises(ValueError) as exc:
         _string_to_attribute(value, type_='function')
     assert re.search(message.format('a function'), exc.value.args[0])
 def test_valid_method_pre_import(self):
     # Test that it returns a classmethod
     from_file_via_validator = _string_to_attribute('tarfile.TarInfo.frombuf', type_='function')
     from tarfile import TarInfo
     assert from_file_via_validator == TarInfo.frombuf
 def test_valid_function_post_import(self):
     # A function from inside a module after the module has been imported
     from itertools import chain
     chain_via_validator = _string_to_attribute('itertools.chain', type_='function')
     assert chain_via_validator == chain
 def test_valid_function_pre_import(self):
     # A function inside a module
     chain_via_validator = _string_to_attribute('itertools.chain', type_='function')
     from itertools import chain
     assert chain_via_validator == chain
 def test_valid_attribute_post_import(self):
     from os import F_OK
     f_ok_via_validator = _string_to_attribute('os.F_OK')
     assert f_ok_via_validator == F_OK
    def test_valid_builtin(self):

        # A toplevel function
        assert _string_to_attribute('dir', type_='function') == dir