示例#1
0
 def test_module_update(self):
     Temp = namedtuple.namedtuple("Temp", "foo")
     assert Temp.__module__ == self.__module__
     with patch.object(namedtuple, "_sys") as mock_sys:
         mock_sys.wraps = sys
         mock_sys._getframe.side_effect = AttributeError()
         Temp = namedtuple.namedtuple("Temp", "foo")
     assert Temp.__module__ == "namedtuple_Temp"
示例#2
0
 def test_invalid_names(self):
     self.assertRaises(ValueError, namedtuple.namedtuple, "Temp", "foo!")
     self.assertRaises(ValueError, namedtuple.namedtuple, "Temp!", "foo")
     self.assertRaises(ValueError, namedtuple.namedtuple, "Temp", "def")
     self.assertRaises(ValueError, namedtuple.namedtuple, "def", "foo")
     self.assertRaises(ValueError, namedtuple.namedtuple, "Temp", "0foo")
     self.assertRaises(ValueError, namedtuple.namedtuple, "0Temp", "foo")
     self.assertRaises(ValueError, namedtuple.namedtuple, "Temp", "_foo")
     namedtuple.namedtuple("_Temp", "foo")
示例#3
0
 def test_verbose(self):
     with patch.object(sys, "stdout", spec_set=True) as mock_stdout:
         Temp = namedtuple.namedtuple("Temp", "foo", verbose=True)
     call_args_list = mock_stdout.write.call_args_list
     assert len(call_args_list) == 2
     output = [call_args[0][0] for call_args in call_args_list]
     assert output == [
         """class Temp(tuple):
         'Temp(foo,)' \n
         __slots__ = () \n
         _fields = ('foo',) \n
         def __new__(_cls, foo,):
             return _tuple.__new__(_cls, (foo,)) \n
         @classmethod
         def _make(cls, iterable, new=tuple.__new__, len=len):
             'Make a new Temp object from a sequence or iterable'
             result = new(cls, iterable)
             if len(result) != 1:
                 raise TypeError('Expected 1 arguments, got %d' % len(result))
             return result \n
         def __repr__(self):
             return 'Temp(foo=%r)' % self \n
         def _asdict(self):
             'Return a new dict which maps field names to their values'
             return dict(zip(self._fields, self)) \n
         def _replace(_self, **kwds):
             'Return a new Temp object replacing specified fields with new values'
             result = _self._make(map(kwds.pop, ('foo',), _self))
             if kwds:
                 raise ValueError('Got unexpected field names: %r' % kwds.keys())
             return result \n
         def __getnewargs__(self):
             return tuple(self) \n
         foo = _property(_itemgetter(0))\n""",
         "\n",
     ]
示例#4
0
from baiocas.lib.namedtuple import namedtuple


Listener = namedtuple('Listener', 'id function extra_args extra_kwargs')
示例#5
0
        # those gets converted and the class is private to Tornado.
        def _add_timeout(deadline, callback):
            timeout = IOLoop.add_timeout(self.io_loop, deadline, callback)
            timeouts.append(Timeout(
                callback=callback,
                deadline=deadline,
                reference=timeout
            ))
            return timeout
        def _remove_timeout(reference):
            IOLoop.remove_timeout(self.io_loop, reference)
            for index, timeout in enumerate(timeouts):
                if timeout.reference == reference:
                    del timeouts[index]
                    break

        # Grab all calls to add_timeout/remove_timeout
        with nested(
            patch.object(self.io_loop, 'add_timeout'),
            patch.object(self.io_loop, 'remove_timeout', mocksignature=True)
        ) as (mock_add_timeout, mock_remove_timeout):
            mock_add_timeout.side_effect = _add_timeout
            mock_remove_timeout.side_effect = _remove_timeout
            yield timeouts


# Class for timeouts scheduled with the I/O event loop. We don't use Tornado's
# instance directly since the deadline is converted to a timestamp and, more
# importantly, the class itself is marked as a private implementation detail.
Timeout = namedtuple('Timeout', 'callback, deadline, reference')
示例#6
0
 def test_rename(self):
     fields = ("foo0", "_foo1", "foo2!", "foo0", "4foo", "foo5")
     Temp = namedtuple.namedtuple("Temp", fields, rename=True)
     assert Temp._fields == ("foo0", "_1", "_2", "_3", "_4", "foo5")
示例#7
0
 def setUpClass(cls):
     cls._mask = ModuleMask("collections")
     reload(namedtuple)
     assert namedtuple.namedtuple.__module__ == "baiocas.lib.namedtuple"
     module = sys.modules[cls.__module__]
     setattr(module, "Point", namedtuple.namedtuple("Point", "x y"))