code: def test_create_success_with_environment(self):
      self.__setup()
      # Create environment definition
      env_def_path = os.path.join(
          self.project_controller.environment_driver.environment_directory_path,
          "Dockerfile",
      )
      with open(env_def_path, "wb") as f:
          f.write(to_bytes("FROM python:3.5-alpine"))
  
      # creating a file in project folder
      test_filepath = os.path.join(
          self.snapshot_controller.home, "script.py"
      )
      with open(test_filepath, "wb") as f:
          f.write(to_bytes("import numpy\n"))
          f.write(to_bytes("import sklearn\n"))
          f.write(to_bytes("print('hello')\n"))
  
      # Test default values for snapshot, success
      snapshot_obj = self.snapshot_controller.create(
          {"message": "my test snapshot"}
      )
  
      assert isinstance(snapshot_obj, Snapshot)
      assert snapshot_obj.code_id
      assert snapshot_obj.environment_id
      assert snapshot_obj.file_collection_id
      assert snapshot_obj.config == {}
      assert snapshot_obj.stats == {}
  
imports: import os
  import tempfile
  import platform
  from io import open, TextIOWrapper
  from datmo.config import Config
  from datmo.core.controller.project import ProjectController
  from datmo.core.controller.environment.environment import EnvironmentController
  from datmo.core.controller.task import TaskController
  from datmo.core.controller.snapshot import SnapshotController
  from datmo.core.entity.snapshot import Snapshot
  from datmo.core.util.exceptions import EntityNotFound, RequiredArgumentMissing, TaskNotComplete, InvalidArgumentType, ProjectNotInitialized, InvalidProjectPath, DoesNotExist, UnstagedChanges
  from datmo.core.util.misc_functions import check_docker_inactive, pytest_docker_environment_failed_instantiation
label_desc: Use image node_id 14 for calling the TestSnapshotController obj's underlying member method code with example usage: obj.test_create_success_with_environment() without return types