code: def test_properties_are_immutable(self):
      pathway = ObstacleSetPathway(
          Point("pO"), Point("pA"), Point("pI")
      )
      with pytest.raises(AttributeError):
          pathway.attachments = None  # type: ignore
      with pytest.raises(TypeError):
          pathway.attachments[0] = None  # type: ignore
      with pytest.raises(TypeError):
          pathway.attachments[1] = None  # type: ignore
      with pytest.raises(TypeError):
          pathway.attachments[-1] = None
  
imports: import pytest
  from sympy import Rational, Symbol, cos, pi, sin, sqrt
  from sympy.physics.mechanics import Force, LinearPathway, ObstacleSetPathway, PathwayBase, Point, ReferenceFrame, WrappingCylinder, WrappingGeometryBase, WrappingPathway, WrappingSphere, dynamicsymbols
  from sympy.simplify.simplify import simplify
label_desc: Use image node_id 5 for calling the TestObstacleSetPathway obj's underlying member method code with example usage: obj.test_properties_are_immutable() without return types