Blame tests/run/mod__spec__.pyx
|
Packit |
562c7a |
# mode: run
|
|
Packit |
562c7a |
# tag: pep489
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
import os.path
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
module_spec = __spec__
|
|
Packit |
562c7a |
module_file = __file__
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def check_spec(spec=__spec__):
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> check_spec()
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
assert __spec__ is not None
|
|
Packit |
562c7a |
assert __spec__ is spec
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert __name__
|
|
Packit |
562c7a |
assert __name__ == spec.name
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert spec.loader is not None
|
|
Packit |
562c7a |
assert spec.loader is __loader__
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert not spec.parent
|
|
Packit |
562c7a |
assert not __package__
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert spec.origin
|
|
Packit |
562c7a |
assert spec.origin == module_file
|
|
Packit |
562c7a |
assert spec.origin == __file__
|
|
Packit |
562c7a |
assert os.path.basename(spec.origin).startswith(__name__)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
# validate that ModuleSpec is already complete at module initialisation time
|
|
Packit |
562c7a |
check_spec()
|
|
Packit |
562c7a |
check_spec(__spec__)
|
|
Packit |
562c7a |
check_spec(module_spec)
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def file_in_module():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> print(file_in_module())
|
|
Packit |
562c7a |
mod__spec__
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
return os.path.basename(module_file).split('.', 1)[0]
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def file_in_function():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> print(file_in_function())
|
|
Packit |
562c7a |
mod__spec__
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
return os.path.basename(__file__).split('.', 1)[0]
|