def test_read_2D_points(self): stri = StringIterator(POINT_2D_TAGS) tags = list(stri) self.assertEqual(15, stri.lineno) # 14 lines tag = tags[0] # 2D point self.assertEqual((100, 200), tag.value) tag = tags[1] # check mark self.assertEqual('check mark 1', tag.value) tag = tags[2] # 3D point self.assertEqual((100, 200, 300), tag.value) tag = tags[3] # check mark self.assertEqual('check mark 2', tag.value)
def setUp(self): self.dwg = Drawing(StringIterator(MINIMALISTIC_DXF12))
def test_dxfversion(self): dwg = Drawing(StringIterator(TEST_HEADER)) self.assertEqual('AC1009', dwg.dxfversion)
def setUp(self): self.reader = StringIterator(TEST_TAGREADER)
class TestTagReader(unittest.TestCase): def setUp(self): self.reader = StringIterator(TEST_TAGREADER) def test_next(self): self.assertEqual((0, 'SECTION'), next(self.reader)) def test_undo_last(self): self.reader.__next__() self.reader.undotag() self.assertEqual((0, 'SECTION'), next(self.reader)) def test_error_on_multiple_undo_last(self): next(self.reader) self.reader.undotag() with self.assertRaises(ValueError): self.reader.undotag() def test_error_undo_last_before_first_read(self): with self.assertRaises(ValueError): self.reader.undotag() def test_lineno(self): next(self.reader) self.assertEqual(2, self.reader.lineno) def test_lineno_with_undo(self): next(self.reader) self.reader.undotag() self.assertEqual(0, self.reader.lineno) def test_lineno_with_undo_next(self): next(self.reader) self.reader.undotag() next(self.reader) self.assertEqual(2, self.reader.lineno) def test_to_list(self): tags = list(self.reader) self.assertEqual(8, len(tags)) def test_undo_eof(self): for tag in self.reader: if tag == (0, 'EOF'): self.reader.undotag() break tag = next(self.reader) self.assertEqual((0, 'EOF'), tag) with self.assertRaises(StopIteration): self.reader.__next__() def test_no_eof(self): tags = list(StringIterator(TEST_NO_EOF)) self.assertEqual(7, len(tags)) self.assertEqual((0, 'ENDSEC'), tags[-1]) def test_strtag_int(self): self.assertEqual(' 1\n1\n', strtag((1, 1))) def test_strtag_float(self): self.assertEqual(' 10\n3.1415\n', strtag((10, 3.1415))) def test_strtag_str(self): self.assertEqual(' 0\nSECTION\n', strtag((0, 'SECTION'))) def test_one_point_reader(self): tags = list(StringIterator(POINT_TAGS)) point_tag = tags[1] self.assertEqual((100, 200, 300), point_tag.value) def test_read_2D_points(self): stri = StringIterator(POINT_2D_TAGS) tags = list(stri) self.assertEqual(15, stri.lineno) # 14 lines tag = tags[0] # 2D point self.assertEqual((100, 200), tag.value) tag = tags[1] # check mark self.assertEqual('check mark 1', tag.value) tag = tags[2] # 3D point self.assertEqual((100, 200, 300), tag.value) tag = tags[3] # check mark self.assertEqual('check mark 2', tag.value) def test_float_to_int(self): tags = Tags.from_text(FLOAT_FOR_INT_TAGS) self.assertEqual(int, type(tags[0].value))
def test_skip_comments(self): tags1 = list(StringIterator(TEST_TAGREADER)) tags2 = list(StringIterator(TEST_TAGREADER_COMMENTS)) self.assertEqual(tags1, tags2)
def test_one_point_reader(self): tags = list(StringIterator(POINT_TAGS)) point_tag = tags[1] self.assertEqual((100, 200, 300), point_tag.value)
def test_no_eof(self): tags = list(StringIterator(TEST_NO_EOF)) self.assertEqual(7, len(tags)) self.assertEqual((0, 'ENDSEC'), tags[-1])