code: def test_c_wchar_p_arg(self):
      func = testdll._testfunc_p_p
      func.restype = c_wchar_p
      func.argtypes = (c_wchar_p,)
  
      c_wchar_p.from_param("123")
  
      self.assertEqual(None, func(None))
      self.assertEqual("123", func("123"))
      self.assertEqual(None, func(c_wchar_p(None)))
      self.assertEqual("123", func(c_wchar_p("123")))
  
      # XXX Currently, these raise TypeErrors, although they shouldn't:
      self.assertEqual("123", func(c_wbuffer("123")))
      ca = c_wchar("a")
      self.assertEqual("a", func(pointer(ca))[0])
      self.assertEqual("a", func(byref(ca))[0])
  
imports: import _ctypes_test
  import unittest
  from ctypes import CDLL, CFUNCTYPE, POINTER, ArgumentError, pointer, byref, sizeof, addressof, create_string_buffer, c_void_p, c_char_p, c_wchar_p, c_char, c_wchar, c_short, c_int, c_long, c_longlong, c_double
label_desc: Use image node_id 3 for calling the WCharPointersTestCase obj's underlying member method code with example usage: obj.test_c_wchar_p_arg() without return types