summaryrefslogtreecommitdiffstats
path: root/tests/packages/inline/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/packages/inline/build.py')
-rw-r--r--tests/packages/inline/build.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/packages/inline/build.py b/tests/packages/inline/build.py
new file mode 100644
index 0000000..a8e0dcb
--- /dev/null
+++ b/tests/packages/inline/build.py
@@ -0,0 +1,63 @@
+import os
+import sys
+
+from textwrap import dedent
+from zipfile import ZipFile
+
+
+name = 'demo_pkg_inline'
+pkg_name = name.replace('_', '-')
+
+version = '1.0.0'
+dist_info = f'{name}-{version}.dist-info'
+
+metadata = f'{dist_info}/METADATA'
+wheel = f'{dist_info}/WHEEL'
+entry_points = f'{dist_info}/entry_points.txt'
+record = f'{dist_info}/RECORD'
+init = f'{name}/__init__.py'
+content = {
+ init: f"def do():\n print('greetings from {name}')",
+ metadata: f"""
+ Metadata-Version: 2.1
+ Name: {pkg_name}
+ Version: {version}
+ Summary: Summary of package
+ Home-page: Does not exists
+ Author: someone
+ Author-email: a@o.com
+ License: MIT
+ Platform: ANY
+
+ Desc
+ """,
+ wheel: f"""
+ Wheel-Version: 1.0
+ Generator: {name}-{version}
+ Root-Is-Purelib: true
+ Tag: py3-none-any
+ """,
+ f'{dist_info}/top_level.txt': name,
+ entry_points: '\n[console_scripts]\ndemo-pkg-inline = demo_pkg_inline:do',
+ record: f"""
+ {name}/__init__.py,,
+ {dist_info}/METADATA,,
+ {dist_info}/WHEEL,,
+ {dist_info}/top_level.txt,,
+ {dist_info}/RECORD,,
+ """,
+}
+
+
+def build_wheel(wheel_directory, metadata_directory=None, config_settings=None):
+ base_name = f'{name}-{version}-py{sys.version_info.major}-none-any.whl'
+ path = os.path.join(wheel_directory, base_name)
+ with ZipFile(str(path), 'w') as zip_file_handler:
+ for arc_name, data in content.items():
+ zip_file_handler.writestr(arc_name, dedent(data).strip())
+ print(f'created wheel {path}')
+ return base_name
+
+
+def get_requires_for_build_wheel(config_settings):
+ return []