コード例 #1
0
 def test_cstrings(self):
     from ctypes import c_char_p
     s = b'123'
     self.assertIs(c_char_p.from_param(s)._obj, s)
     self.assertEqual(c_char_p.from_param(b'123')._obj, b'123')
     self.assertRaises(TypeError, c_char_p.from_param, '123ÿ')
     self.assertRaises(TypeError, c_char_p.from_param, 42)
     a = c_char_p(b'123')
     self.assertIs(c_char_p.from_param(a), a)
コード例 #2
0
 def test_cstrings(self):
     from ctypes import c_char_p, byref
     s = '123'
     self.assertIs(c_char_p.from_param(s)._obj, s)
     self.assertEqual(c_char_p.from_param(u'123')._obj, '123')
     self.assertRaises(UnicodeEncodeError, c_char_p.from_param, u'123\xff')
     self.assertRaises(TypeError, c_char_p.from_param, 42)
     a = c_char_p('123')
     self.assertIs(c_char_p.from_param(a), a)
コード例 #3
0
 def test_cstrings(self):
     from ctypes import c_char_p, byref
     s = '123'
     self.assertIs(c_char_p.from_param(s)._obj, s)
     self.assertEqual(c_char_p.from_param(u'123')._obj, '123')
     self.assertRaises(UnicodeEncodeError, c_char_p.from_param, u'123\xff')
     self.assertRaises(TypeError, c_char_p.from_param, 42)
     a = c_char_p('123')
     self.assertIs(c_char_p.from_param(a), a)
コード例 #4
0
ファイル: test_parameters.py プロジェクト: timm/timmnix
    def test_cstrings(self):
        from ctypes import c_char_p, byref

        # c_char_p.from_param on a Python String packs the string
        # into a cparam object
        s = b"123"
        self.assertIs(c_char_p.from_param(s)._obj, s)

        # new in 0.9.1: convert (encode) unicode to ascii
        self.assertEqual(c_char_p.from_param(b"123")._obj, b"123")
        self.assertRaises(TypeError, c_char_p.from_param, "123\377")
        self.assertRaises(TypeError, c_char_p.from_param, 42)

        # calling c_char_p.from_param with a c_char_p instance
        # returns the argument itself:
        a = c_char_p(b"123")
        self.assertIs(c_char_p.from_param(a), a)
コード例 #5
0
ファイル: test_parameters.py プロジェクト: luw630/ddzserver
    def test_cstrings(self):
        from ctypes import c_char_p, byref

        # c_char_p.from_param on a Python String packs the string
        # into a cparam object
        s = b"123"
        self.assertTrue(c_char_p.from_param(s)._obj is s)

        # new in 0.9.1: convert (encode) unicode to ascii
        self.assertEqual(c_char_p.from_param(b"123")._obj, b"123")
        self.assertRaises(TypeError, c_char_p.from_param, "123\377")
        self.assertRaises(TypeError, c_char_p.from_param, 42)

        # calling c_char_p.from_param with a c_char_p instance
        # returns the argument itself:
        a = c_char_p(b"123")
        self.assertTrue(c_char_p.from_param(a) is a)
コード例 #6
0
ファイル: library.py プロジェクト: erijo/tellcore-py
 def from_param(cls, param):
     if type(param) is str:
         return cls(param)
     try:
         if type(param) is unicode:
             return cls(param)
     except NameError:
         pass  # The unicode type does not exist in python 3
     return c_char_p.from_param(param)
コード例 #7
0
ファイル: library.py プロジェクト: cjethammar/tellcore-py
 def from_param(cls, param):
     if type(param) is str:
         return cls(param)
     try:
         if type(param) is unicode:
             return cls(param)
     except NameError:
         pass  # The unicode type does not exist in python 3
     return c_char_p.from_param(param)
コード例 #8
0
ファイル: test_parameters.py プロジェクト: vandys/tauthon
 def test_parameter_repr(self):
     from ctypes import (
         c_bool,
         c_char,
         c_wchar,
         c_byte,
         c_ubyte,
         c_short,
         c_ushort,
         c_int,
         c_uint,
         c_long,
         c_ulong,
         c_longlong,
         c_ulonglong,
         c_float,
         c_double,
         c_longdouble,
         c_char_p,
         c_wchar_p,
         c_void_p,
     )
     self.assertRegexpMatches(repr(c_bool.from_param(True)),
                              r"^<cparam '\?' at 0x[A-Fa-f0-9]+>$")
     self.assertEqual(repr(c_char.from_param('a')), "<cparam 'c' ('a')>")
     self.assertRegexpMatches(repr(c_wchar.from_param('a')),
                              r"^<cparam 'u' at 0x[A-Fa-f0-9]+>$")
     self.assertEqual(repr(c_byte.from_param(98)), "<cparam 'b' (98)>")
     self.assertEqual(repr(c_ubyte.from_param(98)), "<cparam 'B' (98)>")
     self.assertEqual(repr(c_short.from_param(511)), "<cparam 'h' (511)>")
     self.assertEqual(repr(c_ushort.from_param(511)), "<cparam 'H' (511)>")
     self.assertRegexpMatches(repr(c_int.from_param(20000)),
                              r"^<cparam '[li]' \(20000\)>$")
     self.assertRegexpMatches(repr(c_uint.from_param(20000)),
                              r"^<cparam '[LI]' \(20000\)>$")
     self.assertRegexpMatches(repr(c_long.from_param(20000)),
                              r"^<cparam '[li]' \(20000\)>$")
     self.assertRegexpMatches(repr(c_ulong.from_param(20000)),
                              r"^<cparam '[LI]' \(20000\)>$")
     self.assertRegexpMatches(repr(c_longlong.from_param(20000)),
                              r"^<cparam '[liq]' \(20000\)>$")
     self.assertRegexpMatches(repr(c_ulonglong.from_param(20000)),
                              r"^<cparam '[LIQ]' \(20000\)>$")
     self.assertEqual(repr(c_float.from_param(1.5)), "<cparam 'f' (1.5)>")
     self.assertEqual(repr(c_double.from_param(1.5)), "<cparam 'd' (1.5)>")
     self.assertEqual(repr(c_double.from_param(1e300)),
                      "<cparam 'd' (1e+300)>")
     self.assertRegexpMatches(
         repr(c_longdouble.from_param(1.5)),
         r"^<cparam ('d' \(1.5\)|'g' at 0x[A-Fa-f0-9]+)>$")
     self.assertRegexpMatches(repr(c_char_p.from_param(b'hihi')),
                              "^<cparam 'z' \(0x[A-Fa-f0-9]+\)>$")
     self.assertRegexpMatches(repr(c_wchar_p.from_param('hihi')),
                              "^<cparam 'Z' \(0x[A-Fa-f0-9]+\)>$")
     self.assertRegexpMatches(repr(c_void_p.from_param(0x12)),
                              r"^<cparam 'P' \(0x0*12\)>$")
コード例 #9
0
    def test_cstrings(self):
        py.test.skip("testing implementation internals")
        from ctypes import c_char_p, byref

        # c_char_p.from_param on a Python String packs the string
        # into a cparam object
        s = "123"
        assert c_char_p.from_param(s)._obj is s

        # new in 0.9.1: convert (encode) unicode to ascii
        assert c_char_p.from_param("123")._obj == b"123"
        raises(UnicodeEncodeError, c_char_p.from_param, "123\377")

        raises(TypeError, c_char_p.from_param, 42)

        # calling c_char_p.from_param with a c_char_p instance
        # returns the argument itself:
        a = c_char_p("123")
        assert c_char_p.from_param(a) is a
コード例 #10
0
ファイル: test_parameters.py プロジェクト: Qointum/pypy
    def test_cstrings(self):
        py.test.skip("testing implementation internals")
        from ctypes import c_char_p, byref

        # c_char_p.from_param on a Python String packs the string
        # into a cparam object
        s = "123"
        assert c_char_p.from_param(s)._obj is s

        # new in 0.9.1: convert (encode) unicode to ascii
        assert c_char_p.from_param("123")._obj == b"123"
        raises(UnicodeEncodeError, c_char_p.from_param, "123\377")

        raises(TypeError, c_char_p.from_param, 42)

        # calling c_char_p.from_param with a c_char_p instance
        # returns the argument itself:
        a = c_char_p("123")
        assert c_char_p.from_param(a) is a
コード例 #11
0
    def test_cstrings(self):
        from ctypes import c_char_p, byref

        # c_char_p.from_param on a Python String packs the string
        # into a cparam object
        s = "123"
        assert c_char_p.from_param(s)._obj is s

        # new in 0.9.1: convert (encode) unicode to ascii
        assert c_char_p.from_param(u"123")._obj == "123"
        with pytest.raises(UnicodeEncodeError):
            c_char_p.from_param(u"123\377")

        with pytest.raises(TypeError):
            c_char_p.from_param(42)

        # calling c_char_p.from_param with a c_char_p instance
        # returns the argument itself:
        a = c_char_p("123")
        assert c_char_p.from_param(a) is a