Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _make_appdir_and_dependency_builder(self, reqs, tmpdir, runner):
appdir = str(_create_app_structure(tmpdir))
self._write_requirements_txt(reqs, appdir)
builder = DependencyBuilder(OSUtils(), runner)
return appdir, builder
def smoke_test_app(tmpdir_factory):
sys.modules.pop('app', None)
# We can't use the monkeypatch fixture here because this is a module scope
# fixture and monkeypatch is a function scoped fixture.
os.environ['APP_NAME'] = RANDOM_APP_NAME
tmpdir = str(tmpdir_factory.mktemp(RANDOM_APP_NAME))
OSUtils().copytree(PROJECT_DIR, tmpdir)
_inject_app_name(tmpdir)
application = _deploy_app(tmpdir)
yield application
_delete_app(application, tmpdir)
os.environ.pop('APP_NAME')
def test_can_build_private_rest_api_custom_policy(
self, tmpdir, rest_api_app):
config = self.create_config(rest_api_app,
app_name='rest-api-app',
api_gateway_policy_file='foo.json',
api_gateway_endpoint_type='PRIVATE',
project_dir=str(tmpdir))
tmpdir.mkdir('.chalice').join('foo.json').write(
serialize_to_json({'Version': '2012-10-17', 'Statement': []}))
application_builder = ApplicationGraphBuilder()
build_stage = BuildStage(
steps=[
PolicyGenerator(osutils=OSUtils(), policy_gen=None)
]
)
application = application_builder.build(config, stage_name='dev')
build_stage.execute(config, application.resources)
rest_api = application.resources[0]
assert rest_api.policy.document == {
'Version': '2012-10-17', 'Statement': []
}
def test_does_handle_missing_dependency_error(tmpdir):
appdir = _create_app_structure(tmpdir)
builder = mock.Mock(spec=DependencyBuilder)
fake_package = mock.Mock(spec=Package)
fake_package.identifier = 'foo==1.2'
builder.build_site_packages.side_effect = MissingDependencyError(
set([fake_package]))
ui = mock.Mock(spec=chalice.utils.UI)
osutils = chalice.utils.OSUtils()
packager = LambdaDeploymentPackager(
osutils=osutils,
dependency_builder=builder,
ui=ui,
)
packager.create_deployment_package(str(appdir), 'python2.7')
output = ''.join([call[0][0] for call in ui.write.call_args_list])
assert 'Could not install dependencies:\nfoo==1.2' in output
def osutils():
return OSUtils()
def smoke_test_app_ws(tmpdir_factory):
# We can't use the monkeypatch fixture here because this is a module scope
# fixture and monkeypatch is a function scoped fixture.
os.environ['APP_NAME'] = RANDOM_APP_NAME
tmpdir = str(tmpdir_factory.mktemp(RANDOM_APP_NAME))
_create_dynamodb_table(RANDOM_APP_NAME, tmpdir)
OSUtils().copytree(PROJECT_DIR, tmpdir)
_inject_app_name(tmpdir)
application = _deploy_app(tmpdir)
yield application
_delete_app(application, tmpdir)
_delete_dynamodb_table(RANDOM_APP_NAME, tmpdir)
os.environ.pop('APP_NAME')
from chalice.config import Config
from chalice.policy import PolicyBuilder, AppPolicyGenerator
from chalice.policy import diff_policies
from chalice.utils import OSUtils # noqa
class OsUtilsMock(OSUtils):
def file_exists(self, *args, **kwargs):
return True
def get_file_contents(selfs, *args, **kwargs):
return ''
def iam_policy(client_calls):
builder = PolicyBuilder()
policy = builder.build_policy_from_api_calls(client_calls)
return policy
def test_app_policy_generator_vpc_policy():
config = Config.create(
subnet_ids=['sn1', 'sn2'],
def create_deletion_deployer(client, ui):
# type: (TypedAWSClient, UI) -> Deployer
return Deployer(
application_builder=ApplicationGraphBuilder(),
deps_builder=DependencyBuilder(),
build_stage=BuildStage(steps=[]),
plan_stage=NoopPlanner(),
sweeper=UnreferencedResourcePlanner(),
executor=Executor(client, ui),
recorder=ResultsRecorder(osutils=OSUtils()),
)
def __init__(self, osutils=None):
# type: (Optional[OSUtils]) -> None
self._mtime_cache = {} # type: Dict[str, int]
self._shutdown_event = threading.Event()
self._thread = None # type: Optional[threading.Thread]
if osutils is None:
osutils = OSUtils()
self._osutils = osutils