diff --git a/circle/dashboard/tests/test_mockedviews.py b/circle/dashboard/tests/test_mockedviews.py
index 2180ac8..7d22bd4 100644
--- a/circle/dashboard/tests/test_mockedviews.py
+++ b/circle/dashboard/tests/test_mockedviews.py
@@ -34,6 +34,13 @@ from ..views import AclUpdateView
 from .. import views
 
 
+class QuerySet(list):
+    model = MagicMock()
+
+    def get(self, *args, **kwargs):
+        return self.pop()
+
+
 class ViewUserTestCase(unittest.TestCase):
 
     def test_404(self):
@@ -145,58 +152,66 @@ class VmOperationViewTestCase(unittest.TestCase):
                 view.as_view()(request, pk=1234).render()
 
     def test_migrate(self):
-        request = FakeRequestFactory(POST={'node': 1}, superuser=True)
+        request = FakeRequestFactory(
+            POST={'to_node': 1, 'live_migration': True}, superuser=True)
         view = vm_ops['migrate']
+        node = MagicMock(pk=1, name='node1')
 
         with patch.object(view, 'get_object') as go, \
                 patch('dashboard.views.util.messages') as msg, \
-                patch('dashboard.views.vm.get_object_or_404') as go4:
+                patch.object(view, 'get_form_kwargs') as form_kwargs:
             inst = MagicMock(spec=Instance)
             inst._meta.object_name = "Instance"
             inst.migrate = Instance._ops['migrate'](inst)
             inst.migrate.async = MagicMock()
             inst.has_level.return_value = True
+            form_kwargs.return_value = {
+                'default': 100, 'choices': QuerySet([node])}
             go.return_value = inst
-            go4.return_value = MagicMock()
             assert view.as_view()(request, pk=1234)['location']
             assert not msg.error.called
-            assert go4.called
+            inst.migrate.async.assert_called_once_with(
+                to_node=node, live_migration=True, user=request.user)
 
     def test_migrate_failed(self):
-        request = FakeRequestFactory(POST={'node': 1}, superuser=True)
+        request = FakeRequestFactory(POST={'to_node': 1}, superuser=True)
         view = vm_ops['migrate']
+        node = MagicMock(pk=1, name='node1')
 
         with patch.object(view, 'get_object') as go, \
                 patch('dashboard.views.util.messages') as msg, \
-                patch('dashboard.views.vm.get_object_or_404') as go4:
+                patch.object(view, 'get_form_kwargs') as form_kwargs:
             inst = MagicMock(spec=Instance)
             inst._meta.object_name = "Instance"
             inst.migrate = Instance._ops['migrate'](inst)
             inst.migrate.async = MagicMock()
             inst.migrate.async.side_effect = Exception
             inst.has_level.return_value = True
+            form_kwargs.return_value = {
+                'default': 100, 'choices': QuerySet([node])}
             go.return_value = inst
-            go4.return_value = MagicMock()
             assert view.as_view()(request, pk=1234)['location']
+            assert inst.migrate.async.called
             assert msg.error.called
-            assert go4.called
 
     def test_migrate_wo_permission(self):
-        request = FakeRequestFactory(POST={'node': 1}, superuser=False)
+        request = FakeRequestFactory(POST={'to_node': 1}, superuser=False)
         view = vm_ops['migrate']
+        node = MagicMock(pk=1, name='node1')
 
         with patch.object(view, 'get_object') as go, \
-                patch('dashboard.views.vm.get_object_or_404') as go4:
+                patch.object(view, 'get_form_kwargs') as form_kwargs:
             inst = MagicMock(spec=Instance)
             inst._meta.object_name = "Instance"
             inst.migrate = Instance._ops['migrate'](inst)
             inst.migrate.async = MagicMock()
             inst.has_level.return_value = True
+            form_kwargs.return_value = {
+                'default': 100, 'choices': QuerySet([node])}
             go.return_value = inst
-            go4.return_value = MagicMock()
             with self.assertRaises(PermissionDenied):
                 assert view.as_view()(request, pk=1234)['location']
-            assert go4.called
+            assert not inst.migrate.async.called
 
     def test_migrate_template(self):
         """check if GET dialog's template can be rendered"""
@@ -303,7 +318,7 @@ class VmMassOperationViewTestCase(unittest.TestCase):
                 view.as_view()(request, pk=1234).render()
 
     def test_migrate(self):
-        request = FakeRequestFactory(POST={'node': 1}, superuser=True)
+        request = FakeRequestFactory(POST={'to_node': 1}, superuser=True)
         view = vm_mass_ops['migrate']
 
         with patch.object(view, 'get_object') as go, \
@@ -320,7 +335,7 @@ class VmMassOperationViewTestCase(unittest.TestCase):
             assert not msg2.error.called
 
     def test_migrate_failed(self):
-        request = FakeRequestFactory(POST={'node': 1}, superuser=True)
+        request = FakeRequestFactory(POST={'to_node': 1}, superuser=True)
         view = vm_mass_ops['migrate']
 
         with patch.object(view, 'get_object') as go, \
@@ -336,7 +351,7 @@ class VmMassOperationViewTestCase(unittest.TestCase):
             assert msg.error.called
 
     def test_migrate_wo_permission(self):
-        request = FakeRequestFactory(POST={'node': 1}, superuser=False)
+        request = FakeRequestFactory(POST={'to_node': 1}, superuser=False)
         view = vm_mass_ops['migrate']
 
         with patch.object(view, 'get_object') as go:
diff --git a/circle/vm/tests/test_operations.py b/circle/vm/tests/test_operations.py
index 819ec85..f5eca95 100644
--- a/circle/vm/tests/test_operations.py
+++ b/circle/vm/tests/test_operations.py
@@ -59,7 +59,8 @@ class MigrateOperationTestCase(TestCase):
             MigrateException, op._operation,
             act, to_node=None)
         assert inst.select_node.called
-        op._get_remote_args.assert_called_once_with(to_node='test')
+        op._get_remote_args.assert_called_once_with(
+            to_node='test', live_migration=True)
 
 
 class RebootOperationTestCase(TestCase):