You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by GitBox <gi...@apache.org> on 2020/09/01 01:57:22 UTC

[GitHub] [incubator-superset] lilykuang opened a new pull request #10723: feat: test databases connection api

lilykuang opened a new pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723


   ### SUMMARY
   <!--- Describe the change below, including rationale and design decisions -->
   - Add test connection functionality to `/api/v1/database/test_connection`
   
   ### TEST PLAN
   - python test
   
   ### ADDITIONAL INFORMATION
   <!--- Check any relevant boxes with "x" -->
   <!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
   - [ ] Has associated issue:
   - [ ] Changes UI
   - [ ] Requires DB Migration.
   - [ ] Confirm DB Migration upgrade and downgrade tested.
   - [x] Introduces new feature or API
   - [ ] Removes existing feature or API
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] willbarrett commented on a change in pull request #10723: feat(databases): test connection api

Posted by GitBox <gi...@apache.org>.
willbarrett commented on a change in pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723#discussion_r481478830



##########
File path: superset/databases/dao.py
##########
@@ -0,0 +1,75 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+import logging
+from contextlib import closing
+
+from flask import g
+from sqlalchemy import select
+
+from superset import app
+from superset.dao.base import BaseDAO
+from superset.extensions import db
+from superset.models.core import Database
+from superset.security.analytics_db_safety import check_sqlalchemy_uri
+
+logger = logging.getLogger(__name__)
+
+
+class DatabaseDAO(BaseDAO):

Review comment:
       This probably makes more sense as a Command rather than a DAO since it is more of a business operation.

##########
File path: superset/databases/dao.py
##########
@@ -0,0 +1,75 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+import logging
+from contextlib import closing
+
+from flask import g
+from sqlalchemy import select
+
+from superset import app
+from superset.dao.base import BaseDAO
+from superset.extensions import db
+from superset.models.core import Database
+from superset.security.analytics_db_safety import check_sqlalchemy_uri
+
+logger = logging.getLogger(__name__)
+
+
+class DatabaseDAO(BaseDAO):
+    model_cls = Database
+
+    @staticmethod
+    def test_connection(  # pylint: disable=too-many-arguments, too-many-return-statements
+        db_name: str,
+        uri: str,
+        server_cert: str,
+        extra: str,
+        impersonate_user: bool,
+        encrypted_extra: str,
+    ) -> None:
+        if app.config["PREVENT_UNSAFE_DB_CONNECTIONS"]:
+            check_sqlalchemy_uri(uri)
+        # if the database already exists in the database, only its safe
+        # (password-masked) URI would be shown in the UI and would be passed in the
+        # form data so if the database already exists and the form was submitted
+        # with the safe URI, we assume we should retrieve the decrypted URI to test
+        # the connection.
+        if db_name:
+            existing_database = (
+                db.session.query(Database)
+                .filter_by(database_name=db_name)
+                .one_or_none()
+            )
+            if existing_database and uri == existing_database.safe_sqlalchemy_uri():
+                uri = existing_database.sqlalchemy_uri_decrypted
+
+        # this is the database instance that will be tested
+        database = Database(

Review comment:
       Here through line 70 could also potentially be a DAO method - something like `build_db_for_connection_test`

##########
File path: superset/databases/api.py
##########
@@ -335,3 +351,88 @@ def select_star(
             return self.response(404, message="Table not found on the database")
         self.incr_stats("success", self.select_star.__name__)
         return self.response(200, result=result)
+
+    @expose("/test_connection", methods=["POST"])
+    @protect()
+    @safe
+    @event_logger.log_this
+    @statsd_metrics
+    def test_connection(  # pylint: disable=too-many-return-statements
+        self,
+    ) -> FlaskResponse:
+        """Tests a database connection
+        ---
+        post:
+          description: >-
+            Tests a database connection
+          requestBody:
+            description: Database schema
+            required: true
+            content:
+              application/json:
+                schema:
+                  type: object
+                  properties:
+                    encrypted_extra:
+                      type: object
+                    extras:
+                      type: object
+                    name:
+                      type: string
+                    server_cert:
+                      type: string
+          responses:
+            200:
+              description: Database Test Connection
+              content:
+                application/json:
+                  schema:
+                    type: object
+                    properties:
+                      message:
+                        type: string
+            400:
+              $ref: '#/components/responses/400'
+            422:
+              $ref: '#/components/responses/422'
+            500:
+              $ref: '#/components/responses/500'
+        """
+        uri = request.json.get("uri")
+        try:
+            DatabaseDAO.test_connection(
+                db_name=request.json.get("name"),
+                uri=uri,
+                server_cert=request.json.get("server_cert"),
+                extra=json.dumps(request.json.get("extras", {})),
+                impersonate_user=request.json.get("impersonate_user"),
+                encrypted_extra=json.dumps(request.json.get("encrypted_extra", {})),
+            )
+            return self.response(200, message="OK")
+        except CertificateException as ex:
+            logger.info("Certificate exception")
+            return self.response(500, message=ex.message)
+        except (NoSuchModuleError, ModuleNotFoundError):
+            logger.info("Invalid driver")
+            driver_name = make_url(uri).drivername
+            message = "Could not load database driver: %s" % (driver_name)
+            return self.response(400, message=message, driver_name=driver_name)
+        except ArgumentError:
+            logger.info("Invalid URI")
+            return self.response_422(
+                message="Invalid connection string, a valid string usually follows:\n"
+                "'DRIVER://USER:PASSWORD@DB-HOST/DATABASE-NAME'"
+            )
+        except OperationalError:
+            logger.warning("Connection failed")
+            return self.response(
+                500, message="Connection failed, please check your connection settings"

Review comment:
       I think we're missing the `_()` function that will hook these messages up with their associated translations.

##########
File path: superset/views/core.py
##########
@@ -1162,7 +1133,7 @@ def testconn(  # pylint: disable=too-many-return-statements,no-self-use
             logger.warning("Stopped an unsafe database connection")
             return json_error_response(_(str(ex)), 400)
         except Exception as ex:  # pylint: disable=broad-except
-            logger.error("Unexpected error %s", type(ex).__name__)
+            logger.warning("Unexpected error %s", type(ex).__name__)

Review comment:
       πŸ‘ 

##########
File path: superset/databases/api.py
##########
@@ -335,3 +351,88 @@ def select_star(
             return self.response(404, message="Table not found on the database")
         self.incr_stats("success", self.select_star.__name__)
         return self.response(200, result=result)
+
+    @expose("/test_connection", methods=["POST"])
+    @protect()
+    @safe
+    @event_logger.log_this
+    @statsd_metrics
+    def test_connection(  # pylint: disable=too-many-return-statements
+        self,
+    ) -> FlaskResponse:
+        """Tests a database connection
+        ---
+        post:
+          description: >-
+            Tests a database connection
+          requestBody:
+            description: Database schema
+            required: true
+            content:
+              application/json:
+                schema:
+                  type: object
+                  properties:
+                    encrypted_extra:
+                      type: object
+                    extras:
+                      type: object
+                    name:
+                      type: string
+                    server_cert:
+                      type: string
+          responses:
+            200:
+              description: Database Test Connection
+              content:
+                application/json:
+                  schema:
+                    type: object
+                    properties:
+                      message:
+                        type: string
+            400:
+              $ref: '#/components/responses/400'
+            422:
+              $ref: '#/components/responses/422'
+            500:
+              $ref: '#/components/responses/500'
+        """
+        uri = request.json.get("uri")
+        try:
+            DatabaseDAO.test_connection(
+                db_name=request.json.get("name"),
+                uri=uri,
+                server_cert=request.json.get("server_cert"),
+                extra=json.dumps(request.json.get("extras", {})),
+                impersonate_user=request.json.get("impersonate_user"),
+                encrypted_extra=json.dumps(request.json.get("encrypted_extra", {})),
+            )
+            return self.response(200, message="OK")
+        except CertificateException as ex:
+            logger.info("Certificate exception")
+            return self.response(500, message=ex.message)
+        except (NoSuchModuleError, ModuleNotFoundError):
+            logger.info("Invalid driver")
+            driver_name = make_url(uri).drivername
+            message = "Could not load database driver: %s" % (driver_name)

Review comment:
       I think we could use an f-string here.

##########
File path: superset/databases/dao.py
##########
@@ -0,0 +1,75 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+import logging
+from contextlib import closing
+
+from flask import g
+from sqlalchemy import select
+
+from superset import app
+from superset.dao.base import BaseDAO
+from superset.extensions import db
+from superset.models.core import Database
+from superset.security.analytics_db_safety import check_sqlalchemy_uri
+
+logger = logging.getLogger(__name__)
+
+
+class DatabaseDAO(BaseDAO):
+    model_cls = Database
+
+    @staticmethod
+    def test_connection(  # pylint: disable=too-many-arguments, too-many-return-statements
+        db_name: str,
+        uri: str,
+        server_cert: str,
+        extra: str,
+        impersonate_user: bool,
+        encrypted_extra: str,
+    ) -> None:
+        if app.config["PREVENT_UNSAFE_DB_CONNECTIONS"]:
+            check_sqlalchemy_uri(uri)
+        # if the database already exists in the database, only its safe
+        # (password-masked) URI would be shown in the UI and would be passed in the
+        # form data so if the database already exists and the form was submitted
+        # with the safe URI, we assume we should retrieve the decrypted URI to test
+        # the connection.
+        if db_name:
+            existing_database = (

Review comment:
       This database lookup would be a good candidate for a DAO method.

##########
File path: superset/databases/api.py
##########
@@ -335,3 +351,88 @@ def select_star(
             return self.response(404, message="Table not found on the database")
         self.incr_stats("success", self.select_star.__name__)
         return self.response(200, result=result)
+
+    @expose("/test_connection", methods=["POST"])
+    @protect()
+    @safe
+    @event_logger.log_this
+    @statsd_metrics
+    def test_connection(  # pylint: disable=too-many-return-statements
+        self,
+    ) -> FlaskResponse:
+        """Tests a database connection
+        ---
+        post:
+          description: >-
+            Tests a database connection
+          requestBody:
+            description: Database schema
+            required: true
+            content:
+              application/json:
+                schema:
+                  type: object
+                  properties:
+                    encrypted_extra:
+                      type: object
+                    extras:
+                      type: object
+                    name:
+                      type: string
+                    server_cert:
+                      type: string
+          responses:
+            200:
+              description: Database Test Connection
+              content:
+                application/json:
+                  schema:
+                    type: object
+                    properties:
+                      message:
+                        type: string
+            400:
+              $ref: '#/components/responses/400'
+            422:
+              $ref: '#/components/responses/422'
+            500:
+              $ref: '#/components/responses/500'
+        """
+        uri = request.json.get("uri")
+        try:
+            DatabaseDAO.test_connection(
+                db_name=request.json.get("name"),
+                uri=uri,
+                server_cert=request.json.get("server_cert"),
+                extra=json.dumps(request.json.get("extras", {})),
+                impersonate_user=request.json.get("impersonate_user"),
+                encrypted_extra=json.dumps(request.json.get("encrypted_extra", {})),
+            )
+            return self.response(200, message="OK")
+        except CertificateException as ex:

Review comment:
       This breaks encapsulation a little bit. We're relying on SQLAlchemy errors to decide the response format. Ideally we'd capture these errors in the DAO or Command and transform them into a Superset-specific exception. That could allow us to group, for instance, the module loading errors at a lower level.

##########
File path: superset/databases/api.py
##########
@@ -335,3 +351,88 @@ def select_star(
             return self.response(404, message="Table not found on the database")
         self.incr_stats("success", self.select_star.__name__)
         return self.response(200, result=result)
+
+    @expose("/test_connection", methods=["POST"])
+    @protect()
+    @safe
+    @event_logger.log_this
+    @statsd_metrics
+    def test_connection(  # pylint: disable=too-many-return-statements
+        self,
+    ) -> FlaskResponse:
+        """Tests a database connection
+        ---
+        post:
+          description: >-
+            Tests a database connection
+          requestBody:
+            description: Database schema
+            required: true
+            content:
+              application/json:
+                schema:
+                  type: object
+                  properties:
+                    encrypted_extra:
+                      type: object
+                    extras:
+                      type: object
+                    name:
+                      type: string
+                    server_cert:
+                      type: string
+          responses:
+            200:
+              description: Database Test Connection
+              content:
+                application/json:
+                  schema:
+                    type: object
+                    properties:
+                      message:
+                        type: string
+            400:
+              $ref: '#/components/responses/400'
+            422:
+              $ref: '#/components/responses/422'
+            500:
+              $ref: '#/components/responses/500'
+        """
+        uri = request.json.get("uri")
+        try:
+            DatabaseDAO.test_connection(
+                db_name=request.json.get("name"),
+                uri=uri,
+                server_cert=request.json.get("server_cert"),
+                extra=json.dumps(request.json.get("extras", {})),
+                impersonate_user=request.json.get("impersonate_user"),
+                encrypted_extra=json.dumps(request.json.get("encrypted_extra", {})),
+            )
+            return self.response(200, message="OK")
+        except CertificateException as ex:
+            logger.info("Certificate exception")
+            return self.response(500, message=ex.message)

Review comment:
       Since this is a connection test endpoint, let's return a 400 for this instead of a 500. We expect connection failures.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] codecov-commenter edited a comment on pull request #10723: feat: test databases connection api

Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723#issuecomment-683239330


   # [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=h1) Report
   > Merging [#10723](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=desc) into [master](https://codecov.io/gh/apache/incubator-superset/commit/cd144b68ac2168231346d3980748a406b0a14812?el=desc) will **increase** coverage by `1.20%`.
   > The diff coverage is `n/a`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-superset/pull/10723/graphs/tree.svg?width=650&height=150&src=pr&token=KsB0fHcx6l)](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #10723      +/-   ##
   ==========================================
   + Coverage   60.28%   61.49%   +1.20%     
   ==========================================
     Files         360      429      +69     
     Lines       23223    13954    -9269     
     Branches        0     3555    +3555     
   ==========================================
   - Hits        14001     8581    -5420     
   + Misses       9222     5186    -4036     
   - Partials        0      187     +187     
   ```
   
   | Flag | Coverage Ξ” | |
   |---|---|---|
   | #javascript | `61.49% <ΓΈ> (?)` | |
   | #python | `?` | |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags#carryforward-flags-in-the-pull-request-comment) to find out more.
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree) | Coverage Ξ” | |
   |---|---|---|
   | [superset/db\_engine\_specs/teradata.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGJfZW5naW5lX3NwZWNzL3RlcmFkYXRhLnB5) | | |
   | [superset/utils/logging\_configurator.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdXRpbHMvbG9nZ2luZ19jb25maWd1cmF0b3IucHk=) | | |
   | [superset/datasets/commands/update.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YXNldHMvY29tbWFuZHMvdXBkYXRlLnB5) | | |
   | [.../versions/6c7537a6004a\_models\_for\_email\_reports.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvbWlncmF0aW9ucy92ZXJzaW9ucy82Yzc1MzdhNjAwNGFfbW9kZWxzX2Zvcl9lbWFpbF9yZXBvcnRzLnB5) | | |
   | [superset/migrations/versions/b347b202819b\_.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvbWlncmF0aW9ucy92ZXJzaW9ucy9iMzQ3YjIwMjgxOWJfLnB5) | | |
   | [...ersions/def97f26fdfb\_add\_index\_to\_tagged\_object.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvbWlncmF0aW9ucy92ZXJzaW9ucy9kZWY5N2YyNmZkZmJfYWRkX2luZGV4X3RvX3RhZ2dlZF9vYmplY3QucHk=) | | |
   | [...rsions/289ce07647b\_add\_encrypted\_password\_field.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvbWlncmF0aW9ucy92ZXJzaW9ucy8yODljZTA3NjQ3Yl9hZGRfZW5jcnlwdGVkX3Bhc3N3b3JkX2ZpZWxkLnB5) | | |
   | [superset/datasets/commands/delete.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YXNldHMvY29tbWFuZHMvZGVsZXRlLnB5) | | |
   | [superset/datasets/schemas.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YXNldHMvc2NoZW1hcy5weQ==) | | |
   | [superset/views/filters.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvZmlsdGVycy5weQ==) | | |
   | ... and [776 more](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Ξ” = absolute <relative> (impact)`, `ΓΈ = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=footer). Last update [cd144b6...9794ebd](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] codecov-commenter edited a comment on pull request #10723: feat: test databases connection api

Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723#issuecomment-683239330


   # [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=h1) Report
   > Merging [#10723](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=desc) into [master](https://codecov.io/gh/apache/incubator-superset/commit/234b6bbba9096eb70eccd7f4d4fa1efd32c0bcca?el=desc) will **increase** coverage by `0.61%`.
   > The diff coverage is `67.14%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-superset/pull/10723/graphs/tree.svg?width=650&height=150&src=pr&token=KsB0fHcx6l)](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #10723      +/-   ##
   ==========================================
   + Coverage   58.92%   59.54%   +0.61%     
   ==========================================
     Files         756      361     -395     
     Lines       36072    23274   -12798     
     Branches     3301        0    -3301     
   ==========================================
   - Hits        21256    13858    -7398     
   + Misses      14633     9416    -5217     
   + Partials      183        0     -183     
   ```
   
   | Flag | Coverage Ξ” | |
   |---|---|---|
   | #cypress | `?` | |
   | #python | `59.54% <67.14%> (-0.77%)` | :arrow_down: |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags#carryforward-flags-in-the-pull-request-comment) to find out more.
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree) | Coverage Ξ” | |
   |---|---|---|
   | [superset/databases/api.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2FwaS5weQ==) | `75.17% <39.47%> (-12.80%)` | :arrow_down: |
   | [superset/databases/dao.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2Rhby5weQ==) | `100.00% <100.00%> (ΓΈ)` | |
   | [superset/views/core.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvY29yZS5weQ==) | `73.94% <100.00%> (-0.53%)` | :arrow_down: |
   | [superset/db\_engines/hive.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGJfZW5naW5lcy9oaXZlLnB5) | `0.00% <0.00%> (-85.72%)` | :arrow_down: |
   | [superset/db\_engine\_specs/hive.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGJfZW5naW5lX3NwZWNzL2hpdmUucHk=) | `53.90% <0.00%> (-30.08%)` | :arrow_down: |
   | [superset/db\_engine\_specs/mysql.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGJfZW5naW5lX3NwZWNzL215c3FsLnB5) | `79.16% <0.00%> (-12.50%)` | :arrow_down: |
   | [superset/db\_engine\_specs/presto.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGJfZW5naW5lX3NwZWNzL3ByZXN0by5weQ==) | `70.85% <0.00%> (-11.44%)` | :arrow_down: |
   | [superset/examples/world\_bank.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZXhhbXBsZXMvd29ybGRfYmFuay5weQ==) | `97.10% <0.00%> (-2.90%)` | :arrow_down: |
   | [superset/examples/birth\_names.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZXhhbXBsZXMvYmlydGhfbmFtZXMucHk=) | `97.36% <0.00%> (-2.64%)` | :arrow_down: |
   | [superset/views/database/mixins.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvZGF0YWJhc2UvbWl4aW5zLnB5) | `80.70% <0.00%> (-1.76%)` | :arrow_down: |
   | ... and [401 more](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Ξ” = absolute <relative> (impact)`, `ΓΈ = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=footer). Last update [234b6bb...d9c9fdb](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] codecov-commenter commented on pull request #10723: feat: test databases connection api

Posted by GitBox <gi...@apache.org>.
codecov-commenter commented on pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723#issuecomment-683239330


   # [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=h1) Report
   > Merging [#10723](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=desc) into [master](https://codecov.io/gh/apache/incubator-superset/commit/d3bdea3805e94055b1cfb225f67dcb188a1ad98a?el=desc) will **decrease** coverage by `3.46%`.
   > The diff coverage is `n/a`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-superset/pull/10723/graphs/tree.svg?width=650&height=150&src=pr&token=KsB0fHcx6l)](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #10723      +/-   ##
   ==========================================
   - Coverage   65.00%   61.53%   -3.47%     
   ==========================================
     Files         789      428     -361     
     Lines       37128    13944   -23184     
     Branches     3555     3554       -1     
   ==========================================
   - Hits        24134     8581   -15553     
   + Misses      12887     5176    -7711     
   - Partials      107      187      +80     
   ```
   
   | Flag | Coverage Ξ” | |
   |---|---|---|
   | #cypress | `?` | |
   | #javascript | `61.53% <ΓΈ> (+0.18%)` | :arrow_up: |
   | #python | `?` | |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags#carryforward-flags-in-the-pull-request-comment) to find out more.
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree) | Coverage Ξ” | |
   |---|---|---|
   | [superset-frontend/src/SqlLab/App.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL1NxbExhYi9BcHAuanN4) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/explore/App.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2V4cGxvcmUvQXBwLmpzeA==) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/dashboard/App.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2Rhc2hib2FyZC9BcHAuanN4) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/explore/index.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2V4cGxvcmUvaW5kZXguanN4) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/dashboard/index.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2Rhc2hib2FyZC9pbmRleC5qc3g=) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/setup/setupColors.js](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL3NldHVwL3NldHVwQ29sb3JzLmpz) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/chart/ChartContainer.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2NoYXJ0L0NoYXJ0Q29udGFpbmVyLmpzeA==) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/setup/setupFormatters.js](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL3NldHVwL3NldHVwRm9ybWF0dGVycy5qcw==) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/explore/reducers/index.js](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2V4cGxvcmUvcmVkdWNlcnMvaW5kZXguanM=) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/setup/setupPluginsExtra.js](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL3NldHVwL3NldHVwUGx1Z2luc0V4dHJhLmpz) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | ... and [531 more](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Ξ” = absolute <relative> (impact)`, `ΓΈ = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=footer). Last update [d3bdea3...2434726](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] lilykuang closed pull request #10723: feat: test databases connection api

Posted by GitBox <gi...@apache.org>.
lilykuang closed pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] codecov-commenter edited a comment on pull request #10723: feat(databases): test connection api

Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723#issuecomment-683239330


   # [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=h1) Report
   > Merging [#10723](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=desc) into [master](https://codecov.io/gh/apache/incubator-superset/commit/bc4f98e5b895ad51b2b3663c34e19312f4f4f9c7?el=desc) will **decrease** coverage by `4.10%`.
   > The diff coverage is `85.22%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-superset/pull/10723/graphs/tree.svg?width=650&height=150&src=pr&token=KsB0fHcx6l)](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #10723      +/-   ##
   ==========================================
   - Coverage   65.38%   61.28%   -4.11%     
   ==========================================
     Files         802      803       +1     
     Lines       37817    37900      +83     
     Branches     3555     3555              
   ==========================================
   - Hits        24728    23228    -1500     
   - Misses      12983    14486    +1503     
   - Partials      106      186      +80     
   ```
   
   | Flag | Coverage Ξ” | |
   |---|---|---|
   | #cypress | `?` | |
   | #javascript | `61.60% <ΓΈ> (ΓΈ)` | |
   | #python | `61.10% <85.22%> (+0.10%)` | :arrow_up: |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags#carryforward-flags-in-the-pull-request-comment) to find out more.
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree) | Coverage Ξ” | |
   |---|---|---|
   | [superset/tasks/schedules.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdGFza3Mvc2NoZWR1bGVzLnB5) | `75.74% <0.00%> (ΓΈ)` | |
   | [superset/views/base\_api.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvYmFzZV9hcGkucHk=) | `98.25% <ΓΈ> (ΓΈ)` | |
   | [superset/views/core.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvY29yZS5weQ==) | `74.48% <0.00%> (ΓΈ)` | |
   | [superset/databases/api.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2FwaS5weQ==) | `88.57% <70.96%> (-3.85%)` | :arrow_down: |
   | [superset/databases/commands/test\_connection.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2NvbW1hbmRzL3Rlc3RfY29ubmVjdGlvbi5weQ==) | `94.73% <94.73%> (ΓΈ)` | |
   | [superset/databases/commands/exceptions.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2NvbW1hbmRzL2V4Y2VwdGlvbnMucHk=) | `90.62% <100.00%> (+0.96%)` | :arrow_up: |
   | [superset/databases/dao.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2Rhby5weQ==) | `100.00% <100.00%> (ΓΈ)` | |
   | [superset/databases/schemas.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL3NjaGVtYXMucHk=) | `99.25% <100.00%> (+0.04%)` | :arrow_up: |
   | [superset-frontend/src/SqlLab/App.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL1NxbExhYi9BcHAuanN4) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [superset-frontend/src/explore/App.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL2V4cGxvcmUvQXBwLmpzeA==) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | ... and [166 more](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Ξ” = absolute <relative> (impact)`, `ΓΈ = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=footer). Last update [bc4f98e...df82f00](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] riahk commented on pull request #10723: feat(databases): test connection api

Posted by GitBox <gi...@apache.org>.
riahk commented on pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723#issuecomment-689746859


   LGTM!!


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] willbarrett merged pull request #10723: feat(databases): test connection api

Posted by GitBox <gi...@apache.org>.
willbarrett merged pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] codecov-commenter edited a comment on pull request #10723: feat(databases): test connection api

Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723#issuecomment-683239330


   # [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=h1) Report
   > Merging [#10723](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=desc) into [master](https://codecov.io/gh/apache/incubator-superset/commit/3b4a992861e9c6942b37a162316e2be9d48b380b?el=desc) will **increase** coverage by `0.06%`.
   > The diff coverage is `85.55%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-superset/pull/10723/graphs/tree.svg?width=650&height=150&src=pr&token=KsB0fHcx6l)](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #10723      +/-   ##
   ==========================================
   + Coverage   65.40%   65.46%   +0.06%     
   ==========================================
     Files         802      803       +1     
     Lines       37872    37956      +84     
     Branches     3561     3561              
   ==========================================
   + Hits        24770    24849      +79     
   - Misses      12996    12998       +2     
   - Partials      106      109       +3     
   ```
   
   | Flag | Coverage Ξ” | |
   |---|---|---|
   | #cypress | `55.57% <ΓΈ> (-0.53%)` | :arrow_down: |
   | #javascript | `61.65% <ΓΈ> (ΓΈ)` | |
   | #python | `61.18% <85.55%> (+0.27%)` | :arrow_up: |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags#carryforward-flags-in-the-pull-request-comment) to find out more.
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree) | Coverage Ξ” | |
   |---|---|---|
   | [superset/app.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvYXBwLnB5) | `80.15% <ΓΈ> (ΓΈ)` | |
   | [superset/tasks/schedules.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdGFza3Mvc2NoZWR1bGVzLnB5) | `75.74% <0.00%> (ΓΈ)` | |
   | [superset/views/base\_api.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvYmFzZV9hcGkucHk=) | `98.25% <ΓΈ> (ΓΈ)` | |
   | [superset/views/core.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvY29yZS5weQ==) | `74.48% <0.00%> (ΓΈ)` | |
   | [superset/databases/api.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2FwaS5weQ==) | `89.36% <70.96%> (-3.68%)` | :arrow_down: |
   | [superset/databases/commands/test\_connection.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2NvbW1hbmRzL3Rlc3RfY29ubmVjdGlvbi5weQ==) | `94.73% <94.73%> (ΓΈ)` | |
   | [superset/databases/commands/exceptions.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2NvbW1hbmRzL2V4Y2VwdGlvbnMucHk=) | `90.62% <100.00%> (+0.96%)` | :arrow_up: |
   | [superset/databases/dao.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2Rhby5weQ==) | `100.00% <100.00%> (ΓΈ)` | |
   | [superset/databases/schemas.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL3NjaGVtYXMucHk=) | `99.34% <100.00%> (+0.03%)` | :arrow_up: |
   | [...et-frontend/src/SqlLab/reducers/getInitialState.js](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL1NxbExhYi9yZWR1Y2Vycy9nZXRJbml0aWFsU3RhdGUuanM=) | `33.33% <0.00%> (-16.67%)` | :arrow_down: |
   | ... and [15 more](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Ξ” = absolute <relative> (impact)`, `ΓΈ = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=footer). Last update [3b4a992...5d2e1f7](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org


[GitHub] [incubator-superset] codecov-commenter edited a comment on pull request #10723: feat(databases): test connection api

Posted by GitBox <gi...@apache.org>.
codecov-commenter edited a comment on pull request #10723:
URL: https://github.com/apache/incubator-superset/pull/10723#issuecomment-683239330


   # [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=h1) Report
   > Merging [#10723](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=desc) into [master](https://codecov.io/gh/apache/incubator-superset/commit/3b4a992861e9c6942b37a162316e2be9d48b380b?el=desc) will **increase** coverage by `0.15%`.
   > The diff coverage is `85.55%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-superset/pull/10723/graphs/tree.svg?width=650&height=150&src=pr&token=KsB0fHcx6l)](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master   #10723      +/-   ##
   ==========================================
   + Coverage   65.40%   65.56%   +0.15%     
   ==========================================
     Files         802      803       +1     
     Lines       37872    37956      +84     
     Branches     3561     3561              
   ==========================================
   + Hits        24770    24884     +114     
   + Misses      12996    12966      -30     
     Partials      106      106              
   ```
   
   | Flag | Coverage Ξ” | |
   |---|---|---|
   | #cypress | `56.03% <ΓΈ> (-0.07%)` | :arrow_down: |
   | #javascript | `61.65% <ΓΈ> (ΓΈ)` | |
   | #python | `61.18% <85.55%> (+0.27%)` | :arrow_up: |
   
   Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags#carryforward-flags-in-the-pull-request-comment) to find out more.
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=tree) | Coverage Ξ” | |
   |---|---|---|
   | [superset/app.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvYXBwLnB5) | `80.15% <ΓΈ> (ΓΈ)` | |
   | [superset/tasks/schedules.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdGFza3Mvc2NoZWR1bGVzLnB5) | `75.74% <0.00%> (ΓΈ)` | |
   | [superset/views/base\_api.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvYmFzZV9hcGkucHk=) | `98.25% <ΓΈ> (ΓΈ)` | |
   | [superset/views/core.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvdmlld3MvY29yZS5weQ==) | `74.48% <0.00%> (ΓΈ)` | |
   | [superset/databases/api.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2FwaS5weQ==) | `89.36% <70.96%> (-3.68%)` | :arrow_down: |
   | [superset/databases/commands/test\_connection.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2NvbW1hbmRzL3Rlc3RfY29ubmVjdGlvbi5weQ==) | `94.73% <94.73%> (ΓΈ)` | |
   | [superset/databases/commands/exceptions.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2NvbW1hbmRzL2V4Y2VwdGlvbnMucHk=) | `90.62% <100.00%> (+0.96%)` | :arrow_up: |
   | [superset/databases/dao.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL2Rhby5weQ==) | `100.00% <100.00%> (ΓΈ)` | |
   | [superset/databases/schemas.py](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQvZGF0YWJhc2VzL3NjaGVtYXMucHk=) | `99.34% <100.00%> (+0.03%)` | :arrow_up: |
   | [...rontend/src/SqlLab/components/QueryAutoRefresh.jsx](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree#diff-c3VwZXJzZXQtZnJvbnRlbmQvc3JjL1NxbExhYi9jb21wb25lbnRzL1F1ZXJ5QXV0b1JlZnJlc2guanN4) | `65.90% <0.00%> (-6.82%)` | :arrow_down: |
   | ... and [8 more](https://codecov.io/gh/apache/incubator-superset/pull/10723/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Ξ” = absolute <relative> (impact)`, `ΓΈ = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=footer). Last update [3b4a992...5d2e1f7](https://codecov.io/gh/apache/incubator-superset/pull/10723?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org