test_journal.py 2.3 KB
Newer Older
1
import os
2
import sys
3 4
import json
import sqlite3
5 6
import tempfile
import shutil
7

8 9 10 11 12
if sys.version_info[:2] == (2, 6):
    import unittest2 as unittest
else:
    import unittest

13
from avocado.core import exit_codes
14 15
from avocado.utils import process

16
basedir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..')
17 18 19 20 21
basedir = os.path.abspath(basedir)


class JournalPluginTests(unittest.TestCase):

22
    def setUp(self):
23
        os.chdir(basedir)
24
        self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__)
25 26
        self.cmd_line = ('./scripts/avocado run --job-results-dir %s --sysinfo=off --json - '
                         '--journal examples/tests/passtest.py' % self.tmpdir)
27 28 29
        self.result = process.run(self.cmd_line, ignore_status=True)
        data = json.loads(self.result.stdout)
        self.job_id = data['job_id']
30
        jfile = os.path.join(os.path.dirname(data['debuglog']), '.journal.sqlite')
31 32
        self.db = sqlite3.connect(jfile)

33
    @unittest.skip("Temporary plugin infrastructure removal")
34
    def test_journal_job_id(self):
35 36 37 38
        expected_rc = exit_codes.AVOCADO_ALL_OK
        self.assertEqual(self.result.exit_status, expected_rc,
                         "Command '%s' did not return %s" % (self.cmd_line,
                                                             expected_rc))
39
        cur = self.db.cursor()
40 41
        cur.execute('SELECT unique_id FROM job_info;')
        db_job_id = cur.fetchone()[0]
42 43 44
        self.assertEqual(db_job_id, self.job_id,
                         "The job ids differs, expected %s got %s" % (self.job_id, db_job_id))

45
    @unittest.skip("Temporary plugin infrastructure removal")
46
    def test_journal_count_entries(self):
47 48 49 50
        expected_rc = exit_codes.AVOCADO_ALL_OK
        self.assertEqual(self.result.exit_status, expected_rc,
                         "Command '%s' did not return %s" % (self.cmd_line,
                                                             expected_rc))
51
        cur = self.db.cursor()
52 53 54 55 56 57
        cur.execute('SELECT COUNT(*) FROM test_journal;')
        db_count = cur.fetchone()[0]
        count = 2
        self.assertEqual(db_count, count,
                         "The checkup count of test_journal is wrong, expected %d got %d" % (count, db_count))

58 59
    def tearDown(self):
        self.db.close()
60
        shutil.rmtree(self.tmpdir)
61 62


63 64
if __name__ == '__main__':
    unittest.main()