示例#1
0
    def test_get_file_line_count(self):
        temp_dir = tempfile.mkdtemp()
        try:
            try:
                # Try with double None
                util.get_file_line_count(None)
                self.fail('Expected TypeError')
            except TypeError:
                pass

            try:
                # try on non existant file
                util.get_file_line_count(os.path.join(temp_dir, 'non'))
            except IOError:
                pass

            # try on empty file
            open(os.path.join(temp_dir, 'empty'), 'a').close()
            self.assertEqual(
                util.get_file_line_count(os.path.join(temp_dir, 'empty')), 0)

            # try on file with data
            util.append_string_to_file(os.path.join(temp_dir, 'three'),
                                       'h\no\nw\n')
            self.assertEqual(
                util.get_file_line_count(os.path.join(temp_dir, 'three')), 3)

        finally:
            shutil.rmtree(temp_dir)
示例#2
0
    def test_append_string_to_file(self):
        temp_dir = tempfile.mkdtemp()
        try:
            try:
                # Try with double None
                util.append_string_to_file(None, None)
                self.fail('Expected TypeError')
            except TypeError:
                pass

            try:
                # Try with value set to None
                util.append_string_to_file(os.path.join(temp_dir, 'foo'),
                                           None)
            except TypeError:
                pass

            # try on non existant file
            util.append_string_to_file(os.path.join(temp_dir, 'non'), 'hi')
            f = open(os.path.join(temp_dir, 'non'))
            self.assertEqual(f.readline(), 'hi')
            f.close()

            # try on empty file
            open(os.path.join(temp_dir, 'empty'), 'a').close()
            util.append_string_to_file(os.path.join(temp_dir, 'empty'), 'hi')
            f = open(os.path.join(temp_dir, 'empty'))
            self.assertEqual(f.readline(), 'hi')
            f.close()

            # try on file with data
            util.append_string_to_file(os.path.join(temp_dir, 'empty'), 'how')
            f = open(os.path.join(temp_dir, 'empty'))
            self.assertEqual(f.readline(), 'hihow')

        finally:
            shutil.rmtree(temp_dir)
示例#3
0
    def append_standard_to_files(self):
        """Appends standard 1FCZ to tsv files as mapped below

           NONPOLYMER_TSV_STANDARD is appended to `get_nonpolymer_tsv()`
           CRYSTALPH_TSV_STANDARD is appended to `get_crystalph_tsv()`
           SEQUENCE_TSV_STANDARD is appended to `get_sequence_tsv()`
           SEQUENCE_TSV_STANDARD is appended to `get_oldsequence_tsv()`
        """
        logger.debug('Appending 1FCZ standard to tsv files')
        try:
            util.append_string_to_file(self.get_nonpolymer_tsv(),
                                       DataImportTask.NONPOLYMER_TSV_STANDARD)
            util.append_string_to_file(self.get_sequence_tsv(),
                                       DataImportTask.SEQUENCE_TSV_STANDARD)
            util.append_string_to_file(self.get_oldsequence_tsv(),
                                       DataImportTask.SEQUENCE_TSV_STANDARD)
            util.append_string_to_file(self.get_crystalph_tsv(),
                                       DataImportTask.CRYSTALPH_TSV_STANDARD)

            self.append_to_email_log('\nAppending 1FCZ standard to tsv'
                                     ' files\n')
            nonpoly_count = util.get_file_line_count(self.get_nonpolymer_tsv())
            seq_count = util.get_file_line_count(self.get_sequence_tsv())
            crystal_count = util.get_file_line_count(self.get_crystalph_tsv())
            inchi_count = util.get_file_line_count(
                self.get_components_inchi_file())

            self.append_to_email_log('Line counts:\n')
            self.append_to_email_log(
                str(inchi_count) + ' ' + DataImportTask.COMPINCHI_ICH + '\n')

            self.append_to_email_log(
                str(nonpoly_count) + ' ' + DataImportTask.NONPOLYMER_TSV +
                '\n')

            self.append_to_email_log(
                str(seq_count) + ' ' + DataImportTask.SEQUENCE_TSV + '\n')
            self.append_to_email_log(
                str(seq_count) + ' ' + DataImportTask.OLDSEQUENCE_TSV + '\n')
            self.append_to_email_log(
                str(crystal_count) + ' ' + DataImportTask.CRYSTALPH_TSV + '\n')

        except IOError:
            logger.exception('Error appending standard to file')