3 from db_test import DBDakTestCase
5 from daklib.dbconn import DBConn, BinContents, OverrideType, get_override_type, \
6 Section, get_section, get_sections
8 from sqlalchemy.exc import FlushError, IntegrityError
11 class ContentsTestCase(DBDakTestCase):
13 This TestCase checks the behaviour of contents generation.
16 def test_duplicates1(self):
18 Test the BinContents class for duplication problems.
21 contents1 = BinContents(file = 'usr/bin/hello', \
22 binary = self.binary['hello_2.2-1_i386'])
23 self.session.add(contents1)
26 contents2 = BinContents(file = 'usr/bin/hello', \
27 binary = self.binary['hello_2.2-1_i386'])
28 self.session.add(contents2)
29 self.assertRaises(FlushError, self.session.flush)
31 def test_duplicates2(self):
33 Test the BinContents class for more duplication problems.
36 contents1 = BinContents(file = 'usr/bin/hello', \
37 binary = self.binary['hello_2.2-1_i386'])
38 self.session.add(contents1)
39 contents2 = BinContents(file = 'usr/bin/gruezi', \
40 binary = self.binary['hello_2.2-1_i386'])
41 self.session.add(contents2)
44 contents2.file = 'usr/bin/hello'
45 self.assertRaises(IntegrityError, self.session.flush)
47 def test_duplicates3(self):
49 Test the BinContents class even more.
52 contents1 = BinContents(file = 'usr/bin/hello', \
53 binary = self.binary['hello_2.2-1_i386'])
54 self.session.add(contents1)
55 # same file in different binary packages should be okay
56 contents2 = BinContents(file = 'usr/bin/hello', \
57 binary = self.binary['gnome-hello_2.2-1_i386'])
58 self.session.add(contents2)
61 def test_overridetype(self):
63 Test the OverrideType class.
65 debtype = OverrideType(overridetype = 'deb')
66 self.session.add(debtype)
68 self.assertEqual('deb', debtype.overridetype)
69 self.assertEqual(0, debtype.overrides.count())
70 self.assertEqual(debtype, get_override_type('deb', self.session))
72 def test_section(self):
76 section = Section(section = 'python')
77 self.session.add(section)
79 self.assertEqual('python', section.section)
80 self.assertEqual('python', section)
81 self.assertTrue(section != 'java')
82 self.assertEqual(section, get_section('python', self.session))
83 all_sections = get_sections(self.session)
84 self.assertEqual(section.section_id, all_sections['python'])
85 self.assertEqual(0, section.overrides.count())
87 if __name__ == '__main__':