Added unit test cases for container/auditor.py
Added unit test cases to cover all code path in _one_audit_pass function in container/auditor.py Change-Id: I8b89e94f1492e4366af3ac4260587e988ba29408
This commit is contained in:
		@@ -20,6 +20,7 @@ import os
 | 
				
			|||||||
import random
 | 
					import random
 | 
				
			||||||
from tempfile import mkdtemp
 | 
					from tempfile import mkdtemp
 | 
				
			||||||
from shutil import rmtree
 | 
					from shutil import rmtree
 | 
				
			||||||
 | 
					from eventlet import Timeout
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from swift.common.utils import normalize_timestamp
 | 
					from swift.common.utils import normalize_timestamp
 | 
				
			||||||
from swift.container import auditor
 | 
					from swift.container import auditor
 | 
				
			||||||
@@ -93,6 +94,12 @@ class TestAuditor(unittest.TestCase):
 | 
				
			|||||||
        self.assertEqual(test_auditor.container_failures, 2 * call_times)
 | 
					        self.assertEqual(test_auditor.container_failures, 2 * call_times)
 | 
				
			||||||
        self.assertEqual(test_auditor.container_passes, 3 * call_times)
 | 
					        self.assertEqual(test_auditor.container_passes, 3 * call_times)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # now force timeout path code coverage
 | 
				
			||||||
 | 
					        with mock.patch('swift.container.auditor.ContainerAuditor.'
 | 
				
			||||||
 | 
					                        '_one_audit_pass', side_effect=Timeout()):
 | 
				
			||||||
 | 
					            with mock.patch('swift.container.auditor.time', FakeTime()):
 | 
				
			||||||
 | 
					                self.assertRaises(ValueError, test_auditor.run_forever)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @mock.patch('swift.container.auditor.ContainerBroker', FakeContainerBroker)
 | 
					    @mock.patch('swift.container.auditor.ContainerBroker', FakeContainerBroker)
 | 
				
			||||||
    def test_run_once(self):
 | 
					    def test_run_once(self):
 | 
				
			||||||
        conf = {}
 | 
					        conf = {}
 | 
				
			||||||
@@ -108,6 +115,23 @@ class TestAuditor(unittest.TestCase):
 | 
				
			|||||||
        self.assertEqual(test_auditor.container_failures, 2)
 | 
					        self.assertEqual(test_auditor.container_failures, 2)
 | 
				
			||||||
        self.assertEqual(test_auditor.container_passes, 3)
 | 
					        self.assertEqual(test_auditor.container_passes, 3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @mock.patch('swift.container.auditor.ContainerBroker', FakeContainerBroker)
 | 
				
			||||||
 | 
					    def test_one_audit_pass(self):
 | 
				
			||||||
 | 
					        conf = {}
 | 
				
			||||||
 | 
					        test_auditor = auditor.ContainerAuditor(conf, logger=self.logger)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def fake_audit_location_generator(*args, **kwargs):
 | 
				
			||||||
 | 
					            files = sorted(os.listdir(self.testdir))
 | 
				
			||||||
 | 
					            return [(os.path.join(self.testdir, f), '', '') for f in files]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # force code coverage for logging path
 | 
				
			||||||
 | 
					        test_auditor.logging_interval = 0
 | 
				
			||||||
 | 
					        with mock.patch('swift.container.auditor.audit_location_generator',
 | 
				
			||||||
 | 
					                        fake_audit_location_generator):
 | 
				
			||||||
 | 
					            test_auditor._one_audit_pass(test_auditor.logging_interval)
 | 
				
			||||||
 | 
					        self.assertEqual(test_auditor.container_failures, 1)
 | 
				
			||||||
 | 
					        self.assertEqual(test_auditor.container_passes, 3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @mock.patch('swift.container.auditor.ContainerBroker', FakeContainerBroker)
 | 
					    @mock.patch('swift.container.auditor.ContainerBroker', FakeContainerBroker)
 | 
				
			||||||
    def test_container_auditor(self):
 | 
					    def test_container_auditor(self):
 | 
				
			||||||
        conf = {}
 | 
					        conf = {}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user