def test_iterchunks(self):
        dd = CSV_DDesc(self.csv_file, schema=self.schema)

        # Iteration should produce DyND_DDesc instances
        vals = []
        for el in dd.iterchunks(blen=2):
            self.assertTrue(isinstance(el, DyND_DDesc))
            self.assertTrue(isinstance(el, DDesc))
            vals.extend(ddesc_as_py(el))
        self.assertEqual(vals, [{
            u'f0': u'k1',
            u'f1': u'v1',
            u'f2': 1,
            u'f3': False
        }, {
            u'f0': u'k2',
            u'f1': u'v2',
            u'f2': 2,
            u'f3': True
        }, {
            u'f0': u'k3',
            u'f1': u'v3',
            u'f2': 3,
            u'f3': False
        }])
 def test_iterchunks_start(self):
     dd = CSV_DDesc(self.csv_file, schema=self.schema)
     vals = []
     for el in dd.iterchunks(blen=2, start=1):
         vals.extend(ddesc_as_py(el))
     self.assertEqual(vals, [
         {u'f0': u'k2', u'f1': u'v2', u'f2': 2, u'f3': True},
         {u'f0': u'k3', u'f1': u'v3', u'f2': 3, u'f3': False}])
 def test_iterchunks_start_stop(self):
     dd = CSV_DDesc(self.csv_file, schema=self.schema)
     vals = [ddesc_as_py(v) for v in dd.iterchunks(blen=1, start=1, stop=2)]
     self.assertEqual(vals, [[{
         u'f0': u'k2',
         u'f1': u'v2',
         u'f2': 2,
         u'f3': True
     }]])
 def test_append(self):
     # Get a private file so as to not mess the original one
     handle, csv_file = tempfile.mkstemp(".csv")
     with os.fdopen(handle, "w") as f:
         f.write(self.buf)
     dd = CSV_DDesc(csv_file, schema=self.schema, mode='r+')
     dd.append(["k4", "v4", 4, True])
     vals = [ddesc_as_py(v) for v in dd.iterchunks(blen=1, start=3)]
     self.assertEqual(vals, [[
         {u'f0': u'k4', u'f1': u'v4', u'f2': 4, u'f3': True}]])
     os.remove(csv_file)
    def test_iterchunks(self):
        dd = CSV_DDesc(self.csv_file, schema=self.schema)

        # Iteration should produce DyND_DDesc instances
        vals = []
        for el in dd.iterchunks(blen=2):
            self.assertTrue(isinstance(el, DyND_DDesc))
            self.assertTrue(isinstance(el, DDesc))
            vals.extend(ddesc_as_py(el))
        self.assertEqual(vals, [
            {u'f0': u'k1', u'f1': u'v1', u'f2': 1, u'f3': False},
            {u'f0': u'k2', u'f1': u'v2', u'f2': 2, u'f3': True},
            {u'f0': u'k3', u'f1': u'v3', u'f2': 3, u'f3': False}])
 def test_append(self):
     # Get a private file so as to not mess the original one
     handle, csv_file = tempfile.mkstemp(".csv")
     with os.fdopen(handle, "w") as f:
         f.write(self.buf)
     dd = CSV_DDesc(csv_file, schema=self.schema, mode='r+')
     dd.append(["k4", "v4", 4, True])
     vals = [ddesc_as_py(v) for v in dd.iterchunks(blen=1, start=3)]
     self.assertEqual(vals, [[{
         u'f0': u'k4',
         u'f1': u'v4',
         u'f2': 4,
         u'f3': True
     }]])
     os.remove(csv_file)
 def test_iterchunks_start(self):
     dd = CSV_DDesc(self.csv_file, schema=self.schema)
     vals = []
     for el in dd.iterchunks(blen=2, start=1):
         vals.extend(ddesc_as_py(el))
     self.assertEqual(vals, [{
         u'f0': u'k2',
         u'f1': u'v2',
         u'f2': 2,
         u'f3': True
     }, {
         u'f0': u'k3',
         u'f1': u'v3',
         u'f2': 3,
         u'f3': False
     }])
 def test_content(self):
     dd = CSV_DDesc(self.csv_file,
                    dialect='excel',
                    schema=self.schema,
                    delimiter=' ')
     print(ddesc_as_py(dd))
     s = str(ddesc_as_py(dd))
     assert 'Alice' in s and 'Bob' in s
 def test_getitem_start_step(self):
     dd = CSV_DDesc(self.csv_file, schema=self.schema)
     el = dd[1::2]
     self.assertTrue(isinstance(el, DyND_DDesc))
     vals = ddesc_as_py(el)
     self.assertEqual(vals, [{
         u'f0': u'k2',
         u'f1': u'v2',
         u'f2': 2,
         u'f3': True
     }])
 def test_getitem_stop(self):
     dd = CSV_DDesc(self.csv_file, schema=self.schema)
     el = dd[:1]
     self.assertTrue(isinstance(el, DyND_DDesc))
     vals = ddesc_as_py(el)
     self.assertEqual(vals, [{
         u'f0': u'k1',
         u'f1': u'v1',
         u'f2': 1,
         u'f3': False
     }])
 def test_basic_object_type(self):
     self.assertTrue(issubclass(CSV_DDesc, DDesc))
     dd = CSV_DDesc(self.csv_file, schema=self.schema)
     self.assertTrue(isinstance(dd, DDesc))
     self.assertTrue(isinstance(dd.dshape.shape[0], datashape.Var))
     self.assertEqual(ddesc_as_py(dd), [{
         u'f0': u'k1',
         u'f1': u'v1',
         u'f2': 1,
         u'f3': False
     }, {
         u'f0': u'k2',
         u'f1': u'v2',
         u'f2': 2,
         u'f3': True
     }, {
         u'f0': u'k3',
         u'f1': u'v3',
         u'f2': 3,
         u'f3': False
     }])
 def test_overwrite_delimiter(self):
     dd = CSV_DDesc(self.csv_file,
                    dialect='excel',
                    schema=self.schema,
                    delimiter=' ')
     assert dd.dialect['delimiter'] == ' '
 def test_iterchunks_start_stop(self):
     dd = CSV_DDesc(self.csv_file, schema=self.schema)
     vals = [ddesc_as_py(v) for v in dd.iterchunks(blen=1, start=1, stop=2)]
     self.assertEqual(vals, [[
         {u'f0': u'k2', u'f1': u'v2', u'f2': 2, u'f3': True}]])