Привет, я пытаюсь выполнить модульное тестирование сценария python, требующего аргументов командной строки. Это класс AWS склеивания, но все еще чистый python.
Вот мой модульный тест:
import sys
import unittest
import src.UnzipFile # Fails Here
class TestUnzipFile(unittest.TestCase):
def test_unzipping_file(self):
"""
Tests that it can unzip a tar.gz file
"""
if __name__ == "__main__":
try:
unittest.main()
except Exception:
TestUnzipFile().tearDownClass()
Вот начало сценария, который я пытаюсь импортировать (короткая версия):
args = getResolvedOptions(sys.argv,
[
's3_bucket',
'archive_path',
'destination_path',
])
bucket_name = args['s3_bucket']
tar_file_path = args['archive_path']
if __name__ == "__main__":
main()
После попытки импорта скрипта я получаю следующую ошибку:
awsglue.utils.GlueArgumentError: the following arguments are required: --s3_bucket, --archive_path, --destination_path,
Документации по модульному тестированию AWS клея не так много jobs, и когда задание склеивания настроено, вы не можете использовать переменные среды. Какие бы параметры вы ни использовали, они должны быть аргументами. Итак, мой вопрос заключается в том, как я могу импортировать сценарий python, требующий передачи аргументов?