1# Copyright (C) 2019 Armin Kuster <akuster808@gmail.com>
2#
3import re
4
5from oeqa.runtime.case import OERuntimeTestCase
6from oeqa.core.decorator.depends import OETestDepends
7from oeqa.runtime.decorator.package import OEHasPackage
8
9
10class ClamavTest(OERuntimeTestCase):
11
12    @OEHasPackage(['clamav'])
13    @OETestDepends(['ssh.SSHTest.test_ssh'])
14    def test_freshclam_help(self):
15        status, output = self.target.run('freshclam --help ')
16        msg = ('freshclam --hlep  command does not work as expected. ',
17           'Status and output:%s and %s' % (status, output))
18        self.assertEqual(status, 0, msg = msg)
19
20    @OETestDepends(['clamav.ClamavTest.test_freshclam_help'])
21    def test_freshclam_download(self):
22        status, output = self.target.run('freshclam --show-progress')
23        match = re.search('Database updated', output)
24        #match = re.search('main.cvd is up to date', output)
25        if not match:
26            msg = ('freshclam : DB dowbload failed. '
27               'Status and output:%s and %s' % (status, output))
28            self.assertEqual(status, 1, msg = msg)
29
30    @OETestDepends(['clamav.ClamavTest.test_freshclam_download'])
31    def test_freshclam_check_mirrors(self):
32        status, output = self.target.run('freshclam --list-mirrors')
33        match = re.search('Failures: 0', output)
34        if not match:
35            msg = ('freshclam --list-mirrors: failed. '
36               'Status and output:%s and %s' % (status, output))
37            self.assertEqual(status, 1, msg = msg)
38
39