# HG changeset patch
# User Bob Ippolito <bob@redivi.com>
# Date 1321665103 28800
#      Fri Nov 18 17:11:43 2011 -0800
# Node ID 84965bcb8d87a9e3578adeac5b14cc8dd41a11ed
# Parent  19ad88f008ebcb095c28c67c12bdc91426661054
test with DucKValue and DuckPoint which are not tuple subclasses

diff --git a/simplejson/tests/test_namedtuple.py b/simplejson/tests/test_namedtuple.py
--- a/simplejson/tests/test_namedtuple.py
+++ b/simplejson/tests/test_namedtuple.py
@@ -21,11 +21,24 @@
     Value = namedtuple('Value', ['value'])
     Point = namedtuple('Point', ['x', 'y'])
 
+class DuckValue(object):
+    def __init__(self, *args):
+	self.value = Value(*args)
+
+    def _asdict(self):
+	return self.value._asdict()
+
+class DuckPoint(object):
+    def __init__(self, *args):
+	self.point = Point(*args)
+
+    def _asdict(self):
+	return self.point._asdict()
+
 class TestNamedTuple(unittest.TestCase):
     def test_namedtuple_dumps(self):
-        for v in [Value(1), Point(1, 2)]:
+        for v in [Value(1), Point(1, 2), DuckValue(1), DuckPoint(1, 2)]:
             d = v._asdict()
-            l = list(v)
             self.assertEqual(d, json.loads(json.dumps(v)))
             self.assertEqual(
                 d,
@@ -35,6 +48,10 @@
                 d,
                 json.loads(json.dumps(v, namedtuple_as_object=True,
                                       tuple_as_array=False)))
+
+    def test_namedtuple_dumps_false(self):
+        for v in [Value(1), Point(1, 2)]:
+            l = list(v)
             self.assertEqual(
                 l,
                 json.loads(json.dumps(v, namedtuple_as_object=False)))
@@ -42,9 +59,8 @@
                 tuple_as_array=False, namedtuple_as_object=False)
 
     def test_namedtuple_dump(self):
-        for v in [Value(1), Point(1, 2)]:
+        for v in [Value(1), Point(1, 2), DuckValue(1), DuckPoint(1, 2)]:
             d = v._asdict()
-            l = list(v)
             sio = StringIO()
             json.dump(v, sio)
             self.assertEqual(d, json.loads(sio.getvalue()))
@@ -62,6 +78,10 @@
             self.assertEqual(
                 d,
                 json.loads(sio.getvalue()))
+
+    def test_namedtuple_dump_false(self):
+        for v in [Value(1), Point(1, 2)]:
+            l = list(v)
             sio = StringIO()
             json.dump(v, sio, namedtuple_as_object=False)
             self.assertEqual(