def test_tuple_with_tuples(self): make_parser = self._get_target() schema = (('t1', (('s', 'chararray'), ('i', 'int'))), ('t2', (('s', 'chararray'), ('i', 'int')))) parser = make_parser(schema) self.assertEqual(parser('(foo,8)\t(braz,9)\n'), (('foo', 8), ('braz', 9)))
def test_just_a_str(self): make_parser = self._get_target() parser = make_parser('chararray') self.assertEqual(parser('\n'), None) self.assertEqual(parser('\t\n'), '\t') self.assertEqual(parser('foo\n'), 'foo') self.assertEqual(parser('\tfoo\n'), '\tfoo') self.assertEqual(parser('foo\t\n'), 'foo\t') self.assertEqual(parser('\tfoo\t\n'), '\tfoo\t')
def test_tuple_with_bag_with_tuple(self): make_parser = self._get_target() schema = (('b', [(('s', 'chararray'), ('i', 'int'))]), ) parser = make_parser(schema) self.assertEqual(parser('\n'), ([], )) self.assertEqual(parser('{}\n'), ([], )) self.assertEqual(parser('{(foo,8)}\n'), ([('foo', 8)], )) self.assertEqual(parser('{(foo,8),(bar,10)}\n'), ([('foo', 8), ('bar', 10)], ))
def test_a_tuple_with_str_and_int(self): make_parser = self._get_target() parser = make_parser((('s', 'chararray'), ('i', 'int'))) self.assertEqual(parser('foo\t8\n'), ('foo', 8)) self.assertEqual(parser('foo\t\n'), ('foo', None))
def test_a_tuple_with_str(self): make_parser = self._get_target() parser = make_parser((('s', 'chararray'), )) self.assertEqual(parser('foo\n'), ('foo', )) self.assertEqual(parser('foo\n'), ('foo', )) self.assertEqual(parser('foo\t\n'), ('foo\t', ))
def test_just_a_date(self): make_parser = self._get_target() parser = make_parser('date') self.assertEqual(parser('2013-01-07\n'), datetime.date(2013, 1, 7)) self.assertEqual(parser('\n'), None)
def test_just_a_int(self): make_parser = self._get_target() parser = make_parser('int') self.assertEqual(parser('8\n'), 8) self.assertEqual(parser('\n'), None)
def test_values_after_bag(self): make_parser = self._get_target() schema = (('b', [(('s', 'chararray'), ('i', 'int'))]), ('s', 'chararray')) parser = make_parser(schema) self.assertEqual(parser('{}\tfoo\n'), ([], 'foo'))