def testEquals(self): self.assertSame() self.assertDifference(num=2) self.assertDifference(sub=2) self.assertDifference(name='other') self.assertNotEqual(Qualifier(1, 1, 1, 'q_name', True), Qualifier(1, 1, 1, 'q_name', False))
def testSelectAll(self): self.sess.add(Qualifier(1, 1, 1, 'q1')) self.sess.add(Qualifier(1, 1, 2, 'q2')) self.sess.add(Qualifier(1, 1, 3, 'q3')) self.sess.commit() for row in Qualifier.selectAll((1, 1)): if row['sub'] == 1: self.assertEqual(row['name'], 'q1') elif row['sub'] == 2: self.assertFalse(row[Qualifier.major.name]) elif row['sub'] == 3: self.assertEqual(row['name'], 'q3') else: self.fail(str(row))
def testSelect(self): self.sess.add(Qualifier(1, 1, 1, 'q1')) self.sess.add(Qualifier(1, 1, 2, 'q2')) self.sess.add(Qualifier(1, 1, 3, 'q3')) self.sess.commit() for row in Qualifier.select((1, 1), ['sub', 'name']): if row['sub'] == 1: self.assertEqual(row['name'], 'q1') elif row[0] == 2: self.assertEqual(row[1], 'q2') elif row[0] == 3: self.assertEqual(row[1], 'q3') else: self.fail(str(row))
def testRelations(self): q = Qualifier(1, 1, 1, 'name') self.sess.add(q) self.sess.commit() self.assertListEqual([q], self.M.qualifiers) self.assertEqual(self.M, q.citation) self.assertEqual(self.D, q.descriptor)
def parseQualifier(self, num, sub, element): return Qualifier( self.pmid, num + 1, sub + 1, element.text.strip(), element.get('MajorTopicYN', 'N') == 'Y', )
from collections import defaultdict from datetime import date from io import StringIO from tempfile import TemporaryFile from medic.orm import Medline, Section, Author, Descriptor, Qualifier, Database, Identifier, \ Chemical, Keyword, PublicationType from medic.crud import _dump DATA = [ Section(1, 1, 'Title', 'The Title'), Section(1, 2, 'Abstract', 'The Abstract'), Descriptor(1, 1, 'd_name', True), Descriptor(1, 2, 'd_name'), Qualifier(1, 1, 1, 'q_name', True), Author(1, 1, 'first'), Author(1, 2, 'last'), Identifier(1, 'ns', 'id'), Database(1, 'name', 'accession'), PublicationType(1, 'some'), PublicationType(1, 'another'), Chemical(1, 1, 'name', 'uid'), Keyword(1, 'NOTNLM', 1, 'name', True), Medline(1, 'MEDLINE', 'journal', 'pub_date', date.today()), ] class ParserMock: def __init__(self, instances): self.instances = instances
def testToRepr(self): self.assertEqual('Qualifier<1:2:3>', repr(Qualifier(1, 2, 3, 'name')))
def testToString(self): self.assertEqual('1\t1\t1\tT\tmajor\n', str(Qualifier(1, 1, 1, 'major', True))) self.assertEqual('1\t1\t1\tF\tminor\n', str(Qualifier(1, 1, 1, 'minor')))
def testMajorIsBool(self): self.sess.add(Qualifier(1, 1, 1, 'q_name', None)) self.assertRaises(IntegrityError, self.sess.commit)
def testRequireExistingDescriptor(self): self.sess.add(Qualifier(1, 2, 1, 'q_name')) self.assertRaises(IntegrityError, self.sess.commit)