Exemple #1
0
 def test_read_bad_properties(self):
   # Unknown type...
   lines0 = ['ply', 'format ascii 2.0', 'element values 0', 'property elephants size', 'end_header', '']
   
   # Incomplete string...
   lines1 = ['ply', 'format ascii 2.0', 'element values 0', 'property string size', 'end_header', '']
   
   # Wrong string...
   lines2 = ['ply', 'format ascii 2.0', 'element values 0', 'property string:bytes size', 'end_header', '']
   
   # Crazy string...
   lines3 = ['ply', 'format ascii 2.0', 'element values 0', 'property string:real32 size', 'end_header', '']
   
   # Incomplete array spec...
   lines4 = ['ply', 'format ascii 2.0', 'element values 0', 'property array:2: size', 'end_header', '']
   
   # Negative dimensionality array...
   lines5 = ['ply', 'format ascii 2.0', 'element values 0', 'property array:-2:nat32:real32 size', 'end_header', '']
   
   # Silly shape measure...
   lines6 = ['ply', 'format ascii 2.0', 'element values 0', 'property array:1:real32:real32 size', 'end_header', '']
   
   # Complex nesting...
   lines7 = ['ply', 'format ascii 2.0', 'element values 0', 'property array:1:real32:string:nat32 size', 'end_header', '']
   
   # Do all of the above...
   for lines, error in [(lines0,IOError), (lines1,IndexError), (lines2,IOError), (lines3,IOError), (lines4,KeyError), (lines5,ValueError), (lines6,IOError), (lines7,KeyError)]:
     temp = tempfile.TemporaryFile('w+b')
     temp.write('\n'.join(lines).encode('utf8'))
   
     temp.seek(0)
     with self.assertRaises(error):
       ply2.read(temp)
     temp.close()
Exemple #2
0
 def test_read_small(self):
   lines = ['ply', 'format ascii 2.0', 'element values 2', 'property int32 size', 'end_header', '4', '5']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   ply2.read(temp)
   temp.close()
Exemple #3
0
 def test_read_type(self):
   lines = ['ply', 'format ascii 2.0', 'type nothing', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   ply2.read(temp)
   temp.close()
Exemple #4
0
 def test_read_null_element(self):
   lines = ['ply', 'format ascii 2.0', 'element penguin 0', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   ply2.read(temp)
   temp.close()
Exemple #5
0
    def test_read_minimal(self):
        lines = ['ply', 'format ascii 2.0', 'end_header', '']

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        ply2.read(temp)
        temp.close()
Exemple #6
0
 def test_read_minimal(self):
   lines = ['ply', 'format ascii 2.0', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines))
   
   temp.seek(0)
   ply2.read(temp)
   temp.close()
Exemple #7
0
 def test_read_incomplete(self):
   lines = ['ply', 'format ascii 2.0', 'element values 2', 'property int32 size', 'end_header', '4']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(IOError):
     ply2.read(temp)
   temp.close()
Exemple #8
0
 def test_read_duplicate_property(self):
   lines = ['ply', 'format ascii 2.0', 'element penguin 0', 'property real32 nose_size', 'property real32 nose_size', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
Exemple #9
0
 def test_read_antidata(self):
   lines = ['ply', 'format ascii 2.0', 'element penguin -4', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
Exemple #10
0
 def test_read_unknown_compress(self):
   lines = ['ply', 'format ascii 2.0', 'compress elephant', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
Exemple #11
0
 def test_read_multiple_compress(self):
   lines = ['ply', 'format ascii 2.0', 'compress gzip2', 'compress gzip2', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
Exemple #12
0
 def test_read_no_magic(self):
   lines = ['format ascii 2.0', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
Exemple #13
0
 def test_read_no_format(self):
   lines = ['ply', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
Exemple #14
0
 def test_read_naked_property(self):
   lines = ['ply', 'format ascii 2.0', 'property real32 nose_size', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
Exemple #15
0
    def test_read_no_format(self):
        lines = ['ply', 'end_header', '']

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(AssertionError):
            ply2.read(temp)
        temp.close()
Exemple #16
0
    def test_read_line_endings_dos(self):
        lines = ['ply', 'format ascii 2.0', 'end_header', '']

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n\r'.join(lines))

        temp.seek(0)
        with self.assertRaises(EOFError):
            ply2.read(temp)
        temp.close()
Exemple #17
0
    def test_read_no_end(self):
        lines = ['ply', 'format ascii 2.0']

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(EOFError):
            ply2.read(temp)
        temp.close()
Exemple #18
0
 def test_read_multiple_type(self):
   lines = ['ply', 'format ascii 2.0', 'type nothing', 'type nothingness', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
Exemple #19
0
 def test_read_line_endings_mac(self):
   lines = ['ply', 'format ascii 2.0', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\r\n'.join(lines))
   
   temp.seek(0)
   with self.assertRaises(EOFError):
     ply2.read(temp)
   temp.close()
Exemple #20
0
 def test_read_past_limit(self):
   lines = ['ply', 'format ascii 2.0'] + ['comment I am a fish'] * 16384 + ['end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(BufferError):
     ply2.read(temp)
   temp.close()
Exemple #21
0
 def test_read_no_end(self):
   lines = ['ply', 'format ascii 2.0']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(EOFError):
     ply2.read(temp)
   temp.close()
Exemple #22
0
    def test_read_past_limit(self):
        lines = ['ply', 'format ascii 2.0'
                 ] + ['comment I am a fish'] * 16384 + ['end_header', '']

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(BufferError):
            ply2.read(temp)
        temp.close()
Exemple #23
0
    def test_read_unknown_compress(self):
        lines = [
            'ply', 'format ascii 2.0', 'compress elephant', 'end_header', ''
        ]

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(AssertionError):
            ply2.read(temp)
        temp.close()
Exemple #24
0
    def test_read_antidata(self):
        lines = [
            'ply', 'format ascii 2.0', 'element penguin -4', 'end_header', ''
        ]

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(AssertionError):
            ply2.read(temp)
        temp.close()
Exemple #25
0
    def test_read_small(self):
        lines = [
            'ply', 'format ascii 2.0', 'element values 2',
            'property int32 size', 'end_header', '4', '5'
        ]

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        ply2.read(temp)
        temp.close()
Exemple #26
0
    def test_read_incomplete(self):
        lines = [
            'ply', 'format ascii 2.0', 'element values 2',
            'property int32 size', 'end_header', '4'
        ]

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(IOError):
            ply2.read(temp)
        temp.close()
Exemple #27
0
    def test_read_multiple_type(self):
        lines = [
            'ply', 'format ascii 2.0', 'type nothing', 'type nothingness',
            'end_header', ''
        ]

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(AssertionError):
            ply2.read(temp)
        temp.close()
Exemple #28
0
    def test_read_naked_property(self):
        lines = [
            'ply', 'format ascii 2.0', 'property real32 nose_size',
            'end_header', ''
        ]

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(AssertionError):
            ply2.read(temp)
        temp.close()
Exemple #29
0
 def test_read_bad_length(self):
   lines = ['ply', 'format ascii 2.0', 'length 5 blue wahles', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(AssertionError):
     ply2.read(temp)
   temp.close()
   
   lines = ['ply', 'format ascii 2.0', 'length nine', 'end_header', '']
   
   temp = tempfile.TemporaryFile('w+b')
   temp.write('\n'.join(lines).encode('utf8'))
   
   temp.seek(0)
   with self.assertRaises(ValueError):
     ply2.read(temp)
   temp.close()
Exemple #30
0
    def test_write_read_graph(self):
        before = self.ds_graph()

        temp = tempfile.TemporaryFile('w+b')
        ply2.write(temp, before)

        temp.seek(0)
        after = ply2.read(temp)
        temp.close()

        self.equal(before, after)
Exemple #31
0
  def test_write_read_graph(self):
    before = self.ds_graph()
    
    temp = tempfile.TemporaryFile('w+b')
    ply2.write(temp, before)

    temp.seek(0)
    after = ply2.read(temp)
    temp.close()
    
    self.equal(before, after)
Exemple #32
0
    def test_read_bad_length(self):
        lines = [
            'ply', 'format ascii 2.0', 'length 5 blue wahles', 'end_header', ''
        ]

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(AssertionError):
            ply2.read(temp)
        temp.close()

        lines = ['ply', 'format ascii 2.0', 'length nine', 'end_header', '']

        temp = tempfile.TemporaryFile('w+b')
        temp.write('\n'.join(lines))

        temp.seek(0)
        with self.assertRaises(ValueError):
            ply2.read(temp)
        temp.close()
Exemple #33
0
  def test_read_bad_meta(self):
    # Missing...
    lines0 = ['ply', 'format ascii 2.0', 'meta real32', 'end_header', '']
    
    # Not a float...
    lines1 = ['ply', 'format ascii 2.0', 'meta real32 author bunny', 'end_header', '']
    
    # Not an int...
    lines2 = ['ply', 'format ascii 2.0', 'meta int32 time 3.5', 'end_header', '']
    
    # Excess...
    lines3 = ['ply', 'format ascii 2.0', 'meta real32 time 3.5 seconds', 'end_header', '']
    
    # Bad string length type...
    lines4 = ['ply', 'format ascii 2.0', 'meta string:rodent owner 4 Rupert', 'end_header', '']
    
    # Bad string length...
    lines5 = ['ply', 'format ascii 2.0', 'meta string:nat32 owner rat Rupert', 'end_header', '']
    
    # Wrong string length...
    lines6 = ['ply', 'format ascii 2.0', 'meta string:nat32 owner 8 Rupert', 'end_header', '']
    
    # No string length...
    lines7 = ['ply', 'format ascii 2.0', 'meta string:nat32 owner Rupert', 'end_header', '']
    
    # Unknown type...
    lines8 = ['ply', 'format ascii 2.0', 'meta quaternion angle 3.2 1.2 4.5 -0.3', 'end_header', '']

    # Do all of the above...
    for lines, error in [(lines0,KeyError), (lines1,ValueError), (lines2,ValueError), (lines3,ValueError), (lines4,IOError), (lines5,ValueError), (lines6,IOError), (lines7,ValueError), (lines8,IOError)]:
      temp = tempfile.TemporaryFile('w+b')
      temp.write('\n'.join(lines).encode('utf8'))
    
      temp.seek(0)
      with self.assertRaises(error):
        ply2.read(temp)
      temp.close()
Exemple #34
0
  def test_adv_write_read_graph(self):
    for compress in ['', 'gzip', 'bzip2']:
      for format in ['ascii', 'binary_little_endian', 'binary_big_endian']:
        before = self.ds_graph()
        before['compress'] = compress
        before['format'] = format
    
        temp = tempfile.TemporaryFile('w+b')
        ply2.write(temp, before)

        temp.seek(0)
        after = ply2.read(temp)
        temp.close()
    
        self.equal(before, after)
Exemple #35
0
    def test_adv_write_read_graph(self):
        for compress in ['', 'gzip', 'bzip2']:
            for format in [
                    'ascii', 'binary_little_endian', 'binary_big_endian'
            ]:
                before = self.ds_graph()
                before['compress'] = compress
                before['format'] = format

                temp = tempfile.TemporaryFile('w+b')
                ply2.write(temp, before)

                temp.seek(0)
                after = ply2.read(temp)
                temp.close()

                self.equal(before, after)
Exemple #36
0
    def test_read_bad_properties(self):
        # Unknown type...
        lines0 = [
            'ply', 'format ascii 2.0', 'element values 0',
            'property elephants size', 'end_header', ''
        ]

        # Incomplete string...
        lines1 = [
            'ply', 'format ascii 2.0', 'element values 0',
            'property string size', 'end_header', ''
        ]

        # Wrong string...
        lines2 = [
            'ply', 'format ascii 2.0', 'element values 0',
            'property string:bytes size', 'end_header', ''
        ]

        # Crazy string...
        lines3 = [
            'ply', 'format ascii 2.0', 'element values 0',
            'property string:real32 size', 'end_header', ''
        ]

        # Incomplete array spec...
        lines4 = [
            'ply', 'format ascii 2.0', 'element values 0',
            'property array:2: size', 'end_header', ''
        ]

        # Negative dimensionality array...
        lines5 = [
            'ply', 'format ascii 2.0', 'element values 0',
            'property array:-2:nat32:real32 size', 'end_header', ''
        ]

        # Silly shape measure...
        lines6 = [
            'ply', 'format ascii 2.0', 'element values 0',
            'property array:1:real32:real32 size', 'end_header', ''
        ]

        # Complex nesting...
        lines7 = [
            'ply', 'format ascii 2.0', 'element values 0',
            'property array:1:real32:string:nat32 size', 'end_header', ''
        ]

        # Do all of the above...
        for lines, error in [(lines0, IOError), (lines1, IndexError),
                             (lines2, IOError), (lines3, IOError),
                             (lines4, KeyError), (lines5, ValueError),
                             (lines6, IOError), (lines7, KeyError)]:
            temp = tempfile.TemporaryFile('w+b')
            temp.write('\n'.join(lines))

            temp.seek(0)
            with self.assertRaises(error):
                ply2.read(temp)
            temp.close()
Exemple #37
0
    def test_read_bad_meta(self):
        # Missing...
        lines0 = ['ply', 'format ascii 2.0', 'meta real32', 'end_header', '']

        # Not a float...
        lines1 = [
            'ply', 'format ascii 2.0', 'meta real32 author bunny',
            'end_header', ''
        ]

        # Not an int...
        lines2 = [
            'ply', 'format ascii 2.0', 'meta int32 time 3.5', 'end_header', ''
        ]

        # Excess...
        lines3 = [
            'ply', 'format ascii 2.0', 'meta real32 time 3.5 seconds',
            'end_header', ''
        ]

        # Bad string length type...
        lines4 = [
            'ply', 'format ascii 2.0', 'meta string:rodent owner 4 Rupert',
            'end_header', ''
        ]

        # Bad string length...
        lines5 = [
            'ply', 'format ascii 2.0', 'meta string:nat32 owner rat Rupert',
            'end_header', ''
        ]

        # Wrong string length...
        lines6 = [
            'ply', 'format ascii 2.0', 'meta string:nat32 owner 8 Rupert',
            'end_header', ''
        ]

        # No string length...
        lines7 = [
            'ply', 'format ascii 2.0', 'meta string:nat32 owner Rupert',
            'end_header', ''
        ]

        # Unknown type...
        lines8 = [
            'ply', 'format ascii 2.0',
            'meta quaternion angle 3.2 1.2 4.5 -0.3', 'end_header', ''
        ]

        # Do all of the above...
        for lines, error in [(lines0, KeyError), (lines1, ValueError),
                             (lines2, ValueError), (lines3, ValueError),
                             (lines4, IOError), (lines5, ValueError),
                             (lines6, IOError), (lines7, ValueError),
                             (lines8, IOError)]:
            temp = tempfile.TemporaryFile('w+b')
            temp.write('\n'.join(lines))

            temp.seek(0)
            with self.assertRaises(error):
                ply2.read(temp)
            temp.close()