code: def test_context_changes_independently_once_copied(
      tmpdir, cx_repo_ctor: Callable[[TmpDir], AutoMLContext]
  ):
      cx = cx_repo_ctor(tmpdir)
  
      copied_cx: AutoMLContext = cx._copy().push_attr(
          ProjectDataclass(project_name=DEFAULT_PROJECT)
      )
  
      assert copied_cx.loc.as_list() == [DEFAULT_PROJECT]
      assert cx.loc.as_list() == []
  
imports: import copy
  from typing import Callable, List
  import pytest
  from neuraxle.base import CX
  from neuraxle.metaopt.context import AutoMLContext
  from neuraxle.metaopt.data.aggregates import Client, Project, Root
  from neuraxle.metaopt.data.vanilla import DEFAULT_CLIENT, DEFAULT_PROJECT, BaseDataclass, ClientDataclass, ProjectDataclass, RootDataclass, RoundDataclass, ScopedLocation
  from neuraxle.metaopt.repositories.db import SQLLiteHyperparamsRepository
  from neuraxle.metaopt.repositories.json import HyperparamsOnDiskRepository
  from neuraxle.metaopt.repositories.repo import HyperparamsRepository
  from testing_neuraxle.metaopt.test_automl_dataclasses import ALL_DATACLASSES, SOME_CLIENT_DATACLASS, SOME_FULL_SCOPED_LOCATION, SOME_PROJECT_DATACLASS, SOME_ROOT_DATACLASS, SOME_ROUND_DATACLASS
label_desc: Use image node_id 5 for calling a global function with example usage: test_context_changes_independently_once_copied(tmpdir, cx_repo_ctor) without return types