def test_extract_format_spec__with_align_only_raises_error(self):
     # -- INVALID-FORMAT: Width without type.
     for align in Field.ALIGN_CHARS:
         with self.assertRaises(ValueError) as cm:
             Field.extract_format_spec(align)
         self.assertEqual("INVALID-FORMAT: %s (without type)" % align,
                          str(cm.exception))
 def test_extract_format_spec__with_align_only_raises_error(self):
     # -- INVALID-FORMAT: Width without type.
     for align in Field.ALIGN_CHARS:
         with self.assertRaises(ValueError) as cm:
             Field.extract_format_spec(align)
         self.assertEqual("INVALID-FORMAT: %s (without type)" % align,
                          str(cm.exception))
 def test_extract_format_spec_with_fill_and_align_only_raises_error(self):
     # -- INVALID-FORMAT: Width without type.
     fill = "_"
     for align in Field.ALIGN_CHARS:
         with self.assertRaises(ValueError) as cm:
             format = fill + align
             Field.extract_format_spec(format)
         self.assertEqual("INVALID-FORMAT: %s (without type)" % format,
                          str(cm.exception))
 def test_extract_format_spec_with_fill_and_align_only_raises_error(self):
     # -- INVALID-FORMAT: Width without type.
     fill = "_"
     for align in Field.ALIGN_CHARS:
         with self.assertRaises(ValueError) as cm:
             format = fill + align
             Field.extract_format_spec(format)
         self.assertEqual("INVALID-FORMAT: %s (without type)" % format,
                          str(cm.exception))
 def test_extract_format_spec__with_all(self):
     for format, expected_spec in self.FORMAT_AND_FORMAT_SPEC_DATA:
         format_spec = Field.extract_format_spec(format)
         self.assertEqual(format_spec, expected_spec)
         self.assertValidFormatWidth(format_spec.width)
         if format_spec.align is not None:
             self.assertValidFormatAlign(format_spec.align)
 def test_extract_format_spec__with_all(self):
     for format, expected_spec in self.FORMAT_AND_FORMAT_SPEC_DATA:
         format_spec = Field.extract_format_spec(format)
         self.assertEqual(format_spec, expected_spec)
         self.assertValidFormatWidth(format_spec.width)
         if format_spec.align is not None:
             self.assertValidFormatAlign(format_spec.align)
 def test_extract_format_spec__with_zero_and_type(self):
     formats = ["0s", "0d", "0Number", "0Number+"]
     for format in formats:
         format_spec = Field.extract_format_spec(format)
         expected_type  = format[1:]
         expected_spec = make_format_spec(type=expected_type, zero=True)
         self.assertEqual(format_spec, expected_spec)
 def test_extract_format_spec__with_zero_and_type(self):
     formats = ["0s", "0d", "0Number", "0Number+"]
     for format in formats:
         format_spec = Field.extract_format_spec(format)
         expected_type = format[1:]
         expected_spec = make_format_spec(type=expected_type, zero=True)
         self.assertEqual(format_spec, expected_spec)
 def test_extract_format_spec__with_width_and_type(self):
     formats = ["1s", "2d", "6s", "10d", "60f", "123456789s"]
     for format in formats:
         format_spec = Field.extract_format_spec(format)
         expected_type = format[-1]
         expected_width = format[:-1]
         expected_spec = make_format_spec(type=expected_type,
                                          width=expected_width)
         self.assertEqual(format_spec, expected_spec)
         self.assertValidFormatWidth(format_spec.width)
 def test_extract_format_spec__with_width_and_type(self):
     formats = ["1s", "2d", "6s", "10d", "60f", "123456789s"]
     for format in formats:
         format_spec = Field.extract_format_spec(format)
         expected_type  = format[-1]
         expected_width = format[:-1]
         expected_spec = make_format_spec(type=expected_type,
                                          width=expected_width)
         self.assertEqual(format_spec, expected_spec)
         self.assertValidFormatWidth(format_spec.width)
 def test_extract_format_spec__with_type(self):
     format_types = ["d", "w", "Number", "Number?", "Number*", "Number+"]
     for format_type in format_types:
         format_spec = Field.extract_format_spec(format_type)
         expected_spec = make_format_spec(format_type)
         self.assertEqual(format_spec.type, format_type)
         self.assertEqual(format_spec.width, "")
         self.assertEqual(format_spec.zero, False)
         self.assertIsNone(format_spec.align)
         self.assertIsNone(format_spec.fill)
         self.assertEqual(format_spec, expected_spec)
 def test_extract_format_spec__with_type(self):
     format_types = ["d", "w", "Number", "Number?", "Number*", "Number+"]
     for format_type in format_types:
         format_spec = Field.extract_format_spec(format_type)
         expected_spec = make_format_spec(format_type)
         self.assertEqual(format_spec.type, format_type)
         self.assertEqual(format_spec.width, "")
         self.assertEqual(format_spec.zero, False)
         self.assertIsNone(format_spec.align)
         self.assertIsNone(format_spec.fill)
         self.assertEqual(format_spec, expected_spec)
 def test_extract_format_spec__with_align_and_type(self):
     # -- ALIGN_CHARS = "<>=^"
     formats = ["<s", ">d", "=Number", "^Number+"]
     for format in formats:
         format_spec = Field.extract_format_spec(format)
         expected_align = format[0]
         expected_type  = format[1:]
         expected_spec = make_format_spec(type=expected_type,
                                          align=expected_align)
         self.assertEqual(format_spec, expected_spec)
         self.assertValidFormatAlign(format_spec.align)
 def test_extract_format_spec__with_align_and_type(self):
     # -- ALIGN_CHARS = "<>=^"
     formats = ["<s", ">d", "=Number", "^Number+"]
     for format in formats:
         format_spec = Field.extract_format_spec(format)
         expected_align = format[0]
         expected_type = format[1:]
         expected_spec = make_format_spec(type=expected_type,
                                          align=expected_align)
         self.assertEqual(format_spec, expected_spec)
         self.assertValidFormatAlign(format_spec.align)
 def test_extract_format_spec__with_zero_only_raises_error(self):
     # -- INVALID-FORMAT: Width without type.
     with self.assertRaises(ValueError) as cm:
         Field.extract_format_spec("0")
     self.assertEqual("INVALID-FORMAT: 0 (without type)", str(cm.exception))
 def test_extract_format_spec__with_zero_only_raises_error(self):
     # -- INVALID-FORMAT: Width without type.
     with self.assertRaises(ValueError) as cm:
         Field.extract_format_spec("0")
     self.assertEqual("INVALID-FORMAT: 0 (without type)", str(cm.exception))
 def test_make_format(self):
     for expected_format, format_spec in self.FORMAT_AND_FORMAT_SPEC_DATA:
         format = Field.make_format(format_spec)
         self.assertEqual(format, expected_format)
         format_spec2 = Field.extract_format_spec(format)
         self.assertEqual(format_spec2, format_spec)
 def test_extract_format_spec__with_empty_string_raises_error(self):
     with self.assertRaises(ValueError) as cm:
         Field.extract_format_spec("")
     self.assertIn("INVALID-FORMAT", str(cm.exception))
 def test_make_format(self):
     for expected_format, format_spec in self.FORMAT_AND_FORMAT_SPEC_DATA:
         format = Field.make_format(format_spec)
         self.assertEqual(format, expected_format)
         format_spec2 = Field.extract_format_spec(format)
         self.assertEqual(format_spec2, format_spec)
 def test_extract_format_spec__with_empty_string_raises_error(self):
     with self.assertRaises(ValueError) as cm:
         Field.extract_format_spec("")
     self.assertIn("INVALID-FORMAT", str(cm.exception))