浏览代码

[dco2] Add a move a file test

Romain Rigaux 9 年之前
父节点
当前提交
1bc5e72
共有 2 个文件被更改,包括 24 次插入4 次删除
  1. 2 2
      desktop/core/src/desktop/models.py
  2. 22 2
      desktop/core/src/desktop/tests_doc2.py

+ 2 - 2
desktop/core/src/desktop/models.py

@@ -919,8 +919,8 @@ class Document2(models.Model):
     if directory.can_write_or_exception(user=user):
       directory.dependencies.add(self)
 
-    self.name = directory.name + '/' + self.name.rsplit('/', 1)[1]
- 
+    self.name = directory.name + '/' + self.name.split('/')[-1]
+
   def share(self, user, name='read', users=None, groups=None):
     # TODO check in settings if user can sync, re-share, which perms...
 

+ 22 - 2
desktop/core/src/desktop/tests_doc2.py

@@ -18,7 +18,7 @@
 
 import json
 
-from nose.tools import assert_equal
+from nose.tools import assert_equal, assert_true
 from django.contrib.auth.models import User
 
 from desktop.lib.django_test_util import make_logged_in_client
@@ -26,7 +26,7 @@ from desktop.lib.test_utils import grant_access
 
 from beeswax.models import SavedQuery
 from beeswax.design import hql_query
-from desktop.models import import_saved_beeswax_query
+from desktop.models import import_saved_beeswax_query, Directory
 
 
 class TestDocument2(object):
@@ -83,3 +83,23 @@ class TestDocument2(object):
     data = json.loads(response.content)
 
     assert_equal(0, data['status'], data)
+
+
+  def test_directory_move(self):
+    response = self.client.post('/desktop/api2/doc/mkdir', {'parent_path': json.dumps('/'), 'name': json.dumps('test_mv')})
+    data = json.loads(response.content)
+    assert_equal(0, data['status'], data)
+
+    response = self.client.post('/desktop/api2/doc/mkdir', {'parent_path': json.dumps('/'), 'name': json.dumps('test_mv_dst')})
+    data = json.loads(response.content)
+    assert_equal(0, data['status'], data)
+
+    response = self.client.post('/desktop/api2/doc/move', {
+        'source_doc_id': json.dumps(Directory.objects.get(owner=self.user, name='/test_mv').id),
+        'destination_doc_id': json.dumps(Directory.objects.get(owner=self.user, name='/test_mv_dst').id)
+    })
+    data = json.loads(response.content)
+
+    assert_equal(0, data['status'], data)
+
+    assert_true(Directory.objects.filter(owner=self.user, name='/test_mv_dst/test_mv').exists())