code: def test_assign(self, get_operation_processor):
      value = StringSetVal(["ert", "qwe"])
      expected = {"ert", "qwe"}
  
      processor = MagicMock()
      get_operation_processor.return_value = processor
  
      with self._exp() as exp:
          path, wait = (
              self._random_path(),
              self._random_wait(),
          )
          var = StringSet(exp, path)
          var.assign(value, wait=wait)
          processor.enqueue_operation.assert_has_calls(
              [
                  call(ClearStringSet(path), wait=False),
                  call(AddStrings(path, expected), wait=wait),
              ]
          )
  
file_path: neptune-client/tests/unit/neptune/new/attributes/sets/test_string_set.py
imports: from mock import MagicMock, call, patch
  from neptune.attributes.sets.string_set import StringSet, StringSetVal
  from neptune.internal.operation import AddStrings, ClearStringSet, RemoveStrings
  from tests.unit.neptune.new.attributes.test_attribute_base import TestAttributeBase
label_desc: Use image node_id 1 for calling the TestStringSet obj's underlying member method code with example usage: obj.test_assign(get_operation_processor) without return types