Implement delete segment
Added delete segment functionality. Also added test cases that actually not covering the line of code but tested the delete segment functionally. Change-Id: Iabf59e92be9de09d2d2fde48fea403b7cd2bcd26
This commit is contained in:
parent
3e90629f3e
commit
4fac53baa4
|
@ -100,3 +100,9 @@ def segment_create(request, data):
|
|||
def get_segment(request, segment_id):
|
||||
"""Returns segment by id"""
|
||||
return masakariclient(request).get_segment(segment_id)
|
||||
|
||||
|
||||
def segment_delete(request, segment_id, ignore_missing=True):
|
||||
"""delete segment"""
|
||||
return masakariclient(request).delete_segment(
|
||||
segment_id, ignore_missing)
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
# limitations under the License.
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import ungettext_lazy
|
||||
|
||||
from masakaridashboard.api import api
|
||||
|
||||
from horizon import tables
|
||||
|
||||
|
@ -25,6 +28,27 @@ class CreateSegment(tables.LinkAction):
|
|||
icon = "plus"
|
||||
|
||||
|
||||
class DeleteSegment(tables.DeleteAction):
|
||||
@staticmethod
|
||||
def action_present(count):
|
||||
return ungettext_lazy(
|
||||
u"Delete Segment",
|
||||
u"Delete Segment",
|
||||
count
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def action_past(count):
|
||||
return ungettext_lazy(
|
||||
u"Deleted Segment",
|
||||
u"Deleted Segment",
|
||||
count
|
||||
)
|
||||
|
||||
def delete(self, request, segment_uuid):
|
||||
api.segment_delete(request, segment_uuid, ignore_missing=True)
|
||||
|
||||
|
||||
class FailoverSegmentTable(tables.DataTable):
|
||||
|
||||
name = tables.Column('name', verbose_name=_("Name"))
|
||||
|
@ -42,6 +66,7 @@ class FailoverSegmentTable(tables.DataTable):
|
|||
class Meta(object):
|
||||
name = "failover_segment"
|
||||
verbose_name = _("FailoverSegment")
|
||||
table_actions = (CreateSegment,
|
||||
table_actions = (DeleteSegment,
|
||||
CreateSegment,
|
||||
tables.FilterAction
|
||||
)
|
||||
|
|
|
@ -109,3 +109,34 @@ class SegmentTest(test.TestCase):
|
|||
result = api.pagination_list(self.request, marker='', paginate=True)
|
||||
self.assertIn(SEGMENT_LIST, result)
|
||||
mock_segments.assert_called_once_with(limit=21, marker='')
|
||||
|
||||
def test_delete_ok(self):
|
||||
|
||||
segment = SEGMENT_LIST[0]
|
||||
data = {'object_ids': [segment.uuid],
|
||||
'action': 'failover_segment__delete'}
|
||||
with mock.patch(
|
||||
'masakaridashboard.api.api.pagination_list',
|
||||
return_value=(SEGMENT_LIST, True, True)
|
||||
), mock.patch(
|
||||
'masakaridashboard.api.api.segment_delete',
|
||||
return_value=None
|
||||
) as mocked_delete:
|
||||
res = self.client.post(INDEX_URL, data)
|
||||
|
||||
self.assertNoFormErrors(res)
|
||||
self.assertRedirectsNoFollow(res, INDEX_URL)
|
||||
mocked_delete.assert_called_once_with(
|
||||
mock.ANY,
|
||||
segment.uuid,
|
||||
ignore_missing=True
|
||||
)
|
||||
|
||||
@mock.patch.object(proxy_obj.Proxy, 'delete_segment')
|
||||
def test_segment_delete(self, mock_delete_segments):
|
||||
mock_delete_segments.return_value = None
|
||||
result = api.segment_delete(
|
||||
self.request, SEGMENT_LIST[0].uuid, ignore_missing=True)
|
||||
self.assertEqual(None, result)
|
||||
mock_delete_segments.assert_called_once_with(
|
||||
SEGMENT_LIST[0].uuid, True)
|
||||
|
|
Loading…
Reference in New Issue