def test_value_without_metric_source(self, project_mock): """ Test that the value returns -1 when there is no metric source. """ project_mock.metric_sources = MagicMock() project_mock.metric_sources.return_value = [] last_security_test = metric.LastSecurityTest(subject=None, project=project_mock) result = last_security_test.value() self.assertEqual(-1, result)
def test_value_without_metric_source_id(self, project_mock): """ Test that the value returns -1 when there is no metric source id is None. """ fake_url = None file_with_date = MagicMock() project_mock.metric_sources.return_value = [file_with_date] file_with_date.get_datetime_from_content.return_value = datetime.datetime.now( ) subject_mock = MagicMock() subject_mock.metric_source_id.return_value = fake_url last_security_test = metric.LastSecurityTest(subject=subject_mock, project=project_mock) result = last_security_test.value() self.assertFalse(file_with_date.get_datetime_from_content.called) self.assertEqual(-1, result)
def test_value_invalid(self, project_mock): """ Test that the value returns -1 when last security happens to min date . """ fake_url = 'http://fake_url' file_with_date = MagicMock() project_mock.metric_sources.return_value = [file_with_date] file_with_date.get_datetime_from_content.return_value = datetime.datetime.min subject_mock = MagicMock() subject_mock.metric_source_id.return_value = fake_url last_security_test = metric.LastSecurityTest(subject=subject_mock, project=project_mock) result = last_security_test.value() file_with_date.get_datetime_from_content.assert_called_once_with( fake_url) self.assertEqual(-1, result)
def test_value_newer(self, project_mock): """ Test that the value of the metric is -1 when last test has a date in the future.""" fake_url = 'http://fake_url' file_with_date = MagicMock() project_mock.metric_sources.return_value = [file_with_date] file_with_date.get_datetime_from_content.return_value = datetime.datetime.now( ) + datetime.timedelta(days=5) subject_mock = MagicMock() subject_mock.metric_source_id.return_value = fake_url last_security_test = metric.LastSecurityTest(subject=subject_mock, project=project_mock) result = last_security_test.value() file_with_date.get_datetime_from_content.assert_called_once_with( fake_url) self.assertEqual(-1, result)
def test_value(self, project_mock): """ Test that the value of the metric equals the period from last security test in days. """ fake_url = 'http://fake_url' file_with_date = MagicMock() project_mock.metric_sources.return_value = [file_with_date] file_with_date.get_datetime_from_content.return_value = datetime.datetime.now( ) - datetime.timedelta(2) subject_mock = MagicMock() subject_mock.metric_source_id.return_value = fake_url last_security_test = metric.LastSecurityTest(subject=subject_mock, project=project_mock) result = last_security_test.value() file_with_date.get_datetime_from_content.assert_called_once_with( fake_url) self.assertEqual(2, result)
def test_value_slightly_newer(self, project_mock): """ Test that the value of the metric is 0 when last test happens to have a slightly newer date (due to server time).""" fake_url = 'http://fake_url' file_with_date = MagicMock() project_mock.metric_sources.return_value = [file_with_date] file_with_date.get_datetime_from_content.return_value = datetime.datetime.now( ) + datetime.timedelta(seconds=5) subject_mock = MagicMock() subject_mock.metric_source_id.return_value = fake_url last_security_test = metric.LastSecurityTest(subject=subject_mock, project=project_mock) result = last_security_test.value() file_with_date.get_datetime_from_content.assert_called_once_with( fake_url) self.assertEqual(0, result)