def test_report_malformed_records(self):
   header_definitions = merge_header_definitions.VcfHeaderDefinitions()
   inferred_headers = VcfHeader()
   records = [vcfio.MalformedVcfRecord('file1',
                                       'rs6054257  G  A  29  PASS',
                                       'Invalid literal')]
   expected = [
       'No Header Conflicts Found.\n',
       '\n',
       'No Undefined Headers Found.\n',
       '\n',
       preprocess_reporter._InconsistencyType.MALFORMED_RECORDS + '\n',
       preprocess_reporter._HeaderLine.MALFORMED_RECORDS_HEADER + '\n',
       (preprocess_reporter._DELIMITER).join([
           'file1', 'rs6054257  G  A  29  PASS', 'Invalid literal\n']),
       '\n'
   ]
   self._generate_report_and_assert_contents_equal(
       expected, header_definitions, inferred_headers=inferred_headers,
       malformed_records=records)
from __future__ import absolute_import

import unittest

from apache_beam.testing.test_pipeline import TestPipeline
from apache_beam.testing.util import assert_that
from apache_beam.transforms import Create

from gcp_variant_transforms.beam_io import vcfio
from gcp_variant_transforms.testing import asserts
from gcp_variant_transforms.testing.testdata_util import hash_name
from gcp_variant_transforms.transforms import filter_variants

# A sample MalformedVcfRecord.
MALFORMED_RECORD = vcfio.MalformedVcfRecord('FILE', 'LINE', 'ERROR')


class FilterVariantsTest(unittest.TestCase):
    """Test cases for ``FilterVariants`` transform."""
    def setUp(self):
        self.variants = self._get_sample_variants()
        self.pipeline = TestPipeline()

    def _get_sample_variants(self):
        variant_1 = vcfio.Variant(
            reference_name='19',
            start=11,
            end=12,
            reference_bases='C',
            alternate_bases=['A', 'TT'],