Example #1
0
 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)
Example #2
0
 def setUp(self):
     self.dwg = Drawing(StringIterator(MINIMALISTIC_DXF12))
Example #3
0
 def test_dxfversion(self):
     dwg = Drawing(StringIterator(TEST_HEADER))
     self.assertEqual('AC1009', dwg.dxfversion)
Example #4
0
 def setUp(self):
     self.reader = StringIterator(TEST_TAGREADER)
Example #5
0
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))
Example #6
0
 def test_skip_comments(self):
     tags1 = list(StringIterator(TEST_TAGREADER))
     tags2 = list(StringIterator(TEST_TAGREADER_COMMENTS))
     self.assertEqual(tags1, tags2)
Example #7
0
 def test_one_point_reader(self):
     tags = list(StringIterator(POINT_TAGS))
     point_tag = tags[1]
     self.assertEqual((100, 200, 300), point_tag.value)
Example #8
0
 def test_no_eof(self):
     tags = list(StringIterator(TEST_NO_EOF))
     self.assertEqual(7, len(tags))
     self.assertEqual((0, 'ENDSEC'), tags[-1])
Example #9
0
 def setUp(self):
     self.reader = StringIterator(TEST_TAGREADER)
Example #10
0
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))