Ejemplo n.º 1
0
class SourceFileTests(unittest.TestCase):
    def setUp(self):
        self.temp_directory = tempfile.mkdtemp()
        self.settings = get_appsettings('configs/development.ini', name='main')

        self.request = testing.DummyRequest()

        self.srcfile = SourceFile(self.settings, self.request.session,
                                  SIMPLE_SOURCE_FILE, 10)

    def tearDown(self):
        shutil.rmtree(self.temp_directory)

    def test_load_headers_from_file(self):

        assert self.srcfile.headers == ['head1', 'head2', 'head3', 'head4']

    def test_load_preview_from_file(self):

        c1 = [
            'val1.1', 'val1.2', 'val1.3', 'val1.4', 'val1.5', 'val1.6',
            'val1.7', 'val1.8', 'val1.9', 'val1.10'
        ]
        c2 = [
            'val2.1', 'val2.2', 'val2.3', 'val2.4', 'val2.5', 'val2.6',
            'val2.7', 'val2.8', 'val2.9', 'val2.10'
        ]
        c3 = [
            'val3.1', 'val3.2', 'val3.3', 'val3.4', 'val3.5', 'val3.6',
            'val3.7', 'val3.8', 'val3.9', 'val3.10'
        ]
        c4 = [
            'val4.1', 'val4.2', 'val4.3', 'val4.4', 'val4.5', 'val4.6',
            'val4.7', 'val4.8', 'val4.9', 'val4.10'
        ]
        assert self.srcfile.get_preview_data() == [c1, c2, c3, c4]

    def test_set_forced_column_types(self):
        self.srcfile.set_forced_column_types(
            ['entity', 'numeric', 'text', 'category'])

    def test_set_disabled_columns(self):
        self.srcfile.set_disabled_columns([0, 4])

    def test_is_decimal(self):

        assert not self.srcfile.is_decimal('test')
        assert not self.srcfile.is_decimal('33a4254')
        assert self.srcfile.is_decimal('23')
        assert self.srcfile.is_decimal('23.3095')
        assert not self.srcfile.is_decimal('23,3095')
        assert self.srcfile.is_decimal('.0495')
        assert self.srcfile.is_decimal('')

    def test_guess_column_type(self):

        # category
        assert self.srcfile.guess_values_type(['453', '453', '453', '453'],
                                              'category') == 'category'

        #text
        assert self.srcfile.guess_values_type(['453', '33a4254', '342', '335'],
                                              'text') == 'text'

        #numeric
        assert self.srcfile.guess_values_type(['453', '334254', '342', '335'],
                                              'numeric') == 'numeric'
        assert self.srcfile.guess_values_type(
            ['45.3', '334.254', '342', '335'], 'numeric') == 'numeric'

        #taxon
        assert self.srcfile.guess_values_type(
            ['taxon', 'taxon', 'taxon', 'taxon'], 'taxon') == 'taxon'
        assert self.srcfile.guess_values_type(
            ['taxon', 'taxon', 'taxon', 'taxon'], 'species') == 'taxon'
        assert self.srcfile.guess_values_type(
            ['taxon', 'taxon', 'taxon', 'taxon'], 'aaataxonaaa') == 'taxon'
        assert self.srcfile.guess_values_type(
            ['taxon', 'taxon', 'taxon', 'taxon'], 'aaaspeciesaaa') == 'taxon'

        #ref
        assert self.srcfile.guess_values_type(
            ['reference', 'reference', 'reference', 'reference'],
            'ref') == 'ref'
        assert self.srcfile.guess_values_type(
            ['chromosome', 'chromosome', 'chromosome', 'chromosome'],
            'chrom') == 'ref'
        assert self.srcfile.guess_values_type(
            ['reference', 'reference', 'reference', 'reference'],
            'aaarefaaa') == 'ref'
        assert self.srcfile.guess_values_type(
            ['chromosome', 'chromosome', 'chromosome', 'chromosome'],
            'aaachromaaa') == 'ref'

        #start and end
        assert self.srcfile.guess_values_type(['453', '334254', '342', '335'],
                                              'start') == 'start'
        assert self.srcfile.guess_values_type(
            ['45.3', '334.254', '342', '335'], 'begin') == 'start'
        assert self.srcfile.guess_values_type(['453', '334254', '342', '335'],
                                              'end') == 'end'
        assert self.srcfile.guess_values_type(
            ['45.3', '334.254', '342', '335'], 'stop') == 'end'

        assert self.srcfile.guess_values_type(['a', 'b', 'c', 'd'],
                                              'start') != 'start'
        assert self.srcfile.guess_values_type(['a', 'b', 'c', 'd'],
                                              'ref') != 'start'

    def test_get_domain_knowledge(self):
        srcfile = SourceFile(self.settings, self.request.session,
                             SIMPLE_SOURCE_FILE, 10)
        srcfile.headers == ['head1', 'head2', 'head3', 'head4']
        srcfile.set_forced_column_types(
            ['numeric', 'category', 'text', 'numeric'])
Ejemplo n.º 2
0
 def test_get_domain_knowledge(self):
     srcfile = SourceFile(self.settings, self.request.session,
                          SIMPLE_SOURCE_FILE, 10)
     srcfile.headers == ['head1', 'head2', 'head3', 'head4']
     srcfile.set_forced_column_types(
         ['numeric', 'category', 'text', 'numeric'])