Beispiel #1
0
 def test_non_utf8(self):
     validator = cell_validators.StringValidator('string_cell',
                                                 self.logger,
                                                 required=False,
                                                 repeated=False)
     with six.assertRaisesRegex(
             self, error.CellValidationFailure,
             r'Cell "string_cell" contains invalid value'):
         validator.validate_value(NON_UTF8_DATA, 80, 'filename.tsv', 10)
Beispiel #2
0
 def test_get_cell_object(self):
   cell_validator = cell_validators.StringValidator('ServiceDescription',
                                                    False, False)
   cell = cell_pb2.Cell()
   cell.name = 'ServiceDescription'
   cell.cell_type = cell_pb2.STRING
   cell.string_value.append('yt')
   parser = self._get_file_parser()
   self.assertEqual(parser.get_cell_object(cell_validator, 'yt'), cell)
 def test_non_utf8(self):
   validator = cell_validators.StringValidator(
       'string_cell', self.logger, required=False, repeated=False)
   self.assertRaisesRegexp(
       error.BadUnicodeError,
       r'Cell "string_cell" contained a non-utf8 string: "\'\\xc3\\xc3\'". '
       r'Error detail: "\'utf8\' codec can\'t decode byte 0xc3 in position 0:'
       r' invalid continuation byte". \[Block: 10, Row: 80, '
       r'file=filename.tsv\].',
       validator.validate_value, NON_UTF8_DATA, 80, 'filename.tsv', 10)
Beispiel #4
0
 def test_get_row_object_invalid(self):
   file_row = ['FFOO', '123a']
   row_validators = {
       'FFOO': [
           cell_validators.StringValidator('RecordType', self.logger, False),
           cell_validators.IntegerValidator(
               'NumberOfLines', self.logger, False)]}
   parser = self._get_file_parser(row_validators)
   with six.assertRaisesRegex(
       self, error.CellValidationFailure,
       r'Cell "NumberOfLines" contains invalid value "123a". Value was '
       r'expected to be an integer. \[Block: 1, Row: 8, file=filename\]'):
     parser.get_row_object(file_row, 'FFOO', 8, 1)
 def test_parse_xsd_file_valid_row_types_in_a_specific_row(self):
     """Tests the expected cells in a specific row."""
     rows_validators = self.dsrf_schema_parser.parse_xsd_file(self.logger)
     expected_su02_validators = [
         cell_validators.FixedStringValidator({}, 'RecordType', self.logger,
                                              True, False),
         cell_validators.StringValidator('BlockId', self.logger, True,
                                         False),
         cell_validators.StringValidator('SalesTransactionId', self.logger,
                                         True, False),
         cell_validators.StringValidator('TransactedReleaseOrResource',
                                         self.logger, True, False),
         cell_validators.StringValidator('CommercialModelType', self.logger,
                                         True, False),
         cell_validators.FixedStringValidator({}, 'UseType', self.logger,
                                              True, False),
         cell_validators.StringValidator('Territory', self.logger, True,
                                         False),
         cell_validators.StringValidator('ServiceDescription', self.logger,
                                         False, False),
         cell_validators.BooleanValidator('IsRoyaltyBearing', self.logger,
                                          True, False),
         cell_validators.IntegerValidator('NumberOfStreams', self.logger,
                                          True, False),
         cell_validators.StringValidator('Currency', self.logger, False,
                                         False),
         cell_validators.DecimalValidator('PriceConsumerPaidExcSalesTax',
                                          self.logger, False, False),
         cell_validators.StringValidator('PromotionalActivity', self.logger,
                                         False, False),
         cell_validators.BooleanValidator('PreviewAvailable', self.logger,
                                          False, False),
     ]
     for actual_cell, expected_cell in zip(rows_validators['SU02'],
                                           expected_su02_validators):
         self.assertIsInstance(actual_cell, expected_cell.__class__)
         self.assertEquals(actual_cell.cell_name, expected_cell.cell_name,
                           self.logger)
         self.assertEquals(actual_cell.required, expected_cell.required)
         self.assertEquals(actual_cell.repeated, expected_cell.repeated)
 def get_validator(self):
   return cell_validators.StringValidator('string_cell', self.logger)
Beispiel #7
0
 def setUp(self):
   self.maxDiff = None  # Allow self.assertMultiLineEqual to show all diffs.
   self.logger = dsrf_logger.DSRFLogger(__name__, '/tmp/example.log', True)
   self.row_validators_list = {
       'FHEA': [
           cell_validators.StringValidator('RecordType', self.logger, False),
           cell_validators.StringValidator('MessageId', self.logger, False),
           cell_validators.IntegerValidator('FileNumber', self.logger, False),
           cell_validators.IntegerValidator('NumberOfFiles', False, False)],
       'SY03': [
           cell_validators.StringValidator('RecordType', self.logger, False),
           cell_validators.StringValidator(
               'CommercialModelType', self.logger, False),
           cell_validators.StringValidator('UseType', self.logger, False),
           cell_validators.StringValidator('Territory', self.logger, False),
           cell_validators.StringValidator(
               'ServiceDescription', self.logger, False),
           cell_validators.IntegerValidator(
               'NumberOfUsages', self.logger, False)],
       'RE01': [
           cell_validators.StringValidator('RecordType', self.logger, False),
           cell_validators.StringValidator('BlockId', self.logger, False),
           cell_validators.StringValidator(
               'ReleaseReference', self.logger, False),
           cell_validators.StringValidator(
               'DspReleaseId', self.logger, False)],
       'AS02': [
           cell_validators.StringValidator('RecordType', self.logger, False),
           cell_validators.StringValidator('BlockId', self.logger, False),
           cell_validators.StringValidator(
               'ResourceReference', self.logger, False),
           cell_validators.StringValidator(
               'DspResourceId', self.logger, False),
           cell_validators.StringValidator('ISRC', self.logger, False),
           cell_validators.StringValidator('Title', self.logger, False)],
       'FFOO': [
           cell_validators.StringValidator('RecordType', self.logger, False),
           cell_validators.IntegerValidator(
               'NumberOfLines', self.logger, False)]
   }
   self.expected_blocks = [
       self.block_from_ascii(HEAD_BLOCK),
       self.block_from_ascii(BODY_BLOCK),
       self.block_from_ascii(FOOT_BLOCK)]