Remove in-place operations on model in test_label unit test

This commit is contained in:
AlanCoding
2016-11-15 08:33:29 -05:00
parent 1ca9426270
commit 5258c2a040
2 changed files with 47 additions and 46 deletions

View File

@@ -37,7 +37,7 @@ class Label(CommonModelNameNotUnique):
return \ return \
Label.objects.filter( Label.objects.filter(
organization=None, organization=None,
jobtemplate_labels__isnull=True unifiedjobtemplate_labels__isnull=True
) )
def is_detached(self): def is_detached(self):

View File

@@ -1,21 +1,24 @@
import pytest import pytest
import mock
from awx.main.models.label import Label from awx.main.models.label import Label
from awx.main.models.unified_jobs import UnifiedJobTemplate, UnifiedJob from awx.main.models.unified_jobs import UnifiedJobTemplate, UnifiedJob
def test_get_orphaned_labels(mocker): mock_query_set = mock.MagicMock()
mock_query_set = mocker.MagicMock()
Label.objects.filter = mocker.MagicMock(return_value=mock_query_set)
mock_objects = mock.MagicMock(filter=mock.MagicMock(return_value=mock_query_set))
@mock.patch('awx.main.models.label.Label.objects', mock_objects)
class TestLabelFilterMocked:
def test_get_orphaned_labels(self, mocker):
ret = Label.get_orphaned_labels() ret = Label.get_orphaned_labels()
assert mock_query_set == ret assert mock_query_set == ret
Label.objects.filter.assert_called_with(organization=None, jobtemplate_labels__isnull=True) Label.objects.filter.assert_called_with(organization=None, unifiedjobtemplate_labels__isnull=True)
def test_is_detached(mocker): def test_is_detached(self, mocker):
mock_query_set = mocker.MagicMock()
Label.objects.filter = mocker.MagicMock(return_value=mock_query_set)
mock_query_set.count.return_value = 1 mock_query_set.count.return_value = 1
label = Label(id=37) label = Label(id=37)
@@ -25,9 +28,7 @@ def test_is_detached(mocker):
Label.objects.filter.assert_called_with(id=37, unifiedjob_labels__isnull=True, unifiedjobtemplate_labels__isnull=True) Label.objects.filter.assert_called_with(id=37, unifiedjob_labels__isnull=True, unifiedjobtemplate_labels__isnull=True)
mock_query_set.count.assert_called_with() mock_query_set.count.assert_called_with()
def test_is_detached_not(mocker): def test_is_detached_not(self, mocker):
mock_query_set = mocker.MagicMock()
Label.objects.filter = mocker.MagicMock(return_value=mock_query_set)
mock_query_set.count.return_value = 0 mock_query_set.count.return_value = 0
label = Label(id=37) label = Label(id=37)
@@ -37,12 +38,12 @@ def test_is_detached_not(mocker):
Label.objects.filter.assert_called_with(id=37, unifiedjob_labels__isnull=True, unifiedjobtemplate_labels__isnull=True) Label.objects.filter.assert_called_with(id=37, unifiedjob_labels__isnull=True, unifiedjobtemplate_labels__isnull=True)
mock_query_set.count.assert_called_with() mock_query_set.count.assert_called_with()
@pytest.mark.parametrize("jt_count,j_count,expected", [ @pytest.mark.parametrize("jt_count,j_count,expected", [
(1, 0, True), (1, 0, True),
(0, 1, True), (0, 1, True),
(1, 1, False), (1, 1, False),
]) ])
def test_is_candidate_for_detach(mocker, jt_count, j_count, expected): def test_is_candidate_for_detach(self, mocker, jt_count, j_count, expected):
mock_job_qs = mocker.MagicMock() mock_job_qs = mocker.MagicMock()
mock_job_qs.count = mocker.MagicMock(return_value=j_count) mock_job_qs.count = mocker.MagicMock(return_value=j_count)
UnifiedJob.objects = mocker.MagicMock() UnifiedJob.objects = mocker.MagicMock()