فهرست منبع

HUE-3144 [beeswax] Install either SavedQuery or Doc2 depending on use_new_editor flag

Jenny Kim 9 سال پیش
والد
کامیت
aa10955
2فایلهای تغییر یافته به همراه57 افزوده شده و 48 حذف شده
  1. 31 30
      apps/beeswax/src/beeswax/management/commands/beeswax_install_examples.py
  2. 26 18
      apps/beeswax/src/beeswax/tests.py

+ 31 - 30
apps/beeswax/src/beeswax/management/commands/beeswax_install_examples.py

@@ -305,36 +305,37 @@ class SampleQuery(object):
       query.save()
       LOG.info('Successfully installed sample design: %s' % (self.name,))
 
-    try:
-      # Don't overwrite
-      doc2 = Document2.objects.get(owner=django_user, name=self.name, type=self._document_type(self.type))
-    except Document2.DoesNotExist:
-      # Create document from saved query
-      notebook = import_saved_beeswax_query(query)
-      data = notebook.get_json()
-
-      # Get or create sample user directories
-      home_dir = Directory.objects.get_home_directory(django_user)
-      examples_dir, created = Directory.objects.get_or_create(
-        parent_directory=home_dir,
-        owner=django_user,
-        name=Document2.EXAMPLES_DIR
-      )
-
-      doc2 = Document2.objects.create(
-        owner=django_user,
-        parent_directory=examples_dir,
-        name=self.name,
-        type=self._document_type(self.type),
-        description=self.desc,
-        data=data
-      )
-
-      # Share with default group
-      examples_dir.share(django_user, Document2Permission.READ_PERM, groups=[get_default_user_group()])
-      doc2.save()
-
-      LOG.info('Successfully installed sample query: %s' % (self.name,))
+    if beeswax.conf.USE_NEW_EDITOR.get():
+      try:
+        # Don't overwrite
+        doc2 = Document2.objects.get(owner=django_user, name=self.name, type=self._document_type(self.type))
+      except Document2.DoesNotExist:
+        # Create document from saved query
+        notebook = import_saved_beeswax_query(query)
+        data = notebook.get_json()
+
+        # Get or create sample user directories
+        home_dir = Directory.objects.get_home_directory(django_user)
+        examples_dir, created = Directory.objects.get_or_create(
+          parent_directory=home_dir,
+          owner=django_user,
+          name=Document2.EXAMPLES_DIR
+        )
+
+        doc2 = Document2.objects.create(
+          owner=django_user,
+          parent_directory=examples_dir,
+          name=self.name,
+          type=self._document_type(self.type),
+          description=self.desc,
+          data=data
+        )
+
+        # Share with default group
+        examples_dir.share(django_user, Document2Permission.READ_PERM, groups=[get_default_user_group()])
+        doc2.save()
+
+        LOG.info('Successfully installed sample query: %s' % (self.name,))
 
 
   def _document_type(self, type):

+ 26 - 18
apps/beeswax/src/beeswax/tests.py

@@ -1219,25 +1219,33 @@ for x in sys.stdin:
     assert_true(data['rows'], data)
     resp = self.client.get(reverse('beeswax:get_sample_data', kwargs={'database': 'default', 'table': 'customers'}))
 
-    # New queries exist
-    resp = self.client.get('/desktop/api2/docs/')
-    data = json.loads(resp.content)
-    doc_names = [doc['name'] for doc in data['documents']]
-    assert_true('examples' in doc_names, data)
-    uuid = next((doc['uuid'] for doc in data['documents'] if doc['name'] == 'examples'), None)
+    if conf.USE_NEW_EDITOR.get():
+      # New queries exist
+      resp = self.client.get('/desktop/api2/docs/')
+      data = json.loads(resp.content)
+      doc_names = [doc['name'] for doc in data['documents']]
+      assert_true('examples' in doc_names, data)
+      uuid = next((doc['uuid'] for doc in data['documents'] if doc['name'] == 'examples'), None)
 
-    resp = self.client.get('/desktop/api2/doc/', {'uuid': uuid})
-    data = json.loads(resp.content)
-    doc_names = [doc['name'] for doc in data['children']]
-    assert_true('Sample: Job loss' in doc_names, data)
-    assert_true('Sample: Salary growth' in doc_names, data)
-    assert_true('Sample: Top salary' in doc_names, data)
-    assert_true('Sample: Customers' in doc_names, data)
-
-    # Now install it a second time, and no error
-    resp = self.client.post('/beeswax/install_examples')
-    assert_equal(0, json.loads(resp.content)['status'])
-    assert_equal('', json.loads(resp.content)['message'])
+      resp = self.client.get('/desktop/api2/doc/', {'uuid': uuid})
+      data = json.loads(resp.content)
+      doc_names = [doc['name'] for doc in data['children']]
+      assert_true('Sample: Job loss' in doc_names, data)
+      assert_true('Sample: Salary growth' in doc_names, data)
+      assert_true('Sample: Top salary' in doc_names, data)
+      assert_true('Sample: Customers' in doc_names, data)
+    else:
+      # New designs exists
+      resp = self.client.get('/beeswax/list_designs')
+      assert_true('Sample: Job loss' in resp.content, resp.content)
+      assert_true('Sample: Salary growth' in resp.content)
+      assert_true('Sample: Top salary' in resp.content)
+      assert_true('Sample: Customers' in resp.content)
+
+      # Now install it a second time, and no error
+      resp = self.client.post('/beeswax/install_examples')
+      assert_equal(0, json.loads(resp.content)['status'])
+      assert_equal('', json.loads(resp.content)['message'])
 
 
   def test_create_table_generation(self):