Код: Выделить всё
from awsglue.utils import getResolvedOptions
from functools import *
class FetchArguments:
def __init__(self) -> None:
pass
def fetch_arguments(self, args):
Код: Выделить всё
import unittest
from unittest.mock import patch
from utils.fetch_arguments import FetchArguments
class TestFetchArguments(unittest.TestCase):
@patch("utils.fetch_arguments.awsglue.utils.getResolvedOptions")
def test_fetch_arguments_with_fullload(self, mock_get_resolved_options):
Код: Выделить всё
from awsglue.dynamicframe import DynamicFrame
ModuleNotFoundError: No module named 'awsglue'
Альтернатива-1:< /p>
Чтобы устранить эту ошибку, я установил git+https://github.com/awslabs/aws-glue-libs.git (последнюю связующую библиотеку) и скопировал библиотеки в папка tox->python->lib->site-packages, и мои тесты прошли нормально. Но это не подходит для целей CI/CD.
Альтернатива-2:
Я напрямую попробовал запустить тест через это также команда python -m unittest Discover -v, но затем выдает ошибку относительно модулей Python, импортированных, как показано ниже:
Код: Выделить всё
from models.model import SparkJobFactoryDetails
ModuleNotFoundError: No module named 'models'
Я также пытался поставить это git+https://github.com/awslabs /aws-glue-libs.git в моем файле setup.py, а затем попытался установить этот пакет во время выполнения, но почему-то он не принимает этот формат в моем файле setup.py.
Итак, учитывая эти сценарии, что именно можно сделать, чтобы сделать ситуацию более гладкой?
Подробнее здесь: https://stackoverflow.com/questions/785 ... le-via-tox