You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2020/07/05 12:53:45 UTC

[skywalking-python] branch test/polish created (now 3defedc)

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a change to branch test/polish
in repository https://gitbox.apache.org/repos/asf/skywalking-python.git.


      at 3defedc  Chore: add missing `log` method and simplify test codes

This branch includes the following new commits:

     new 3defedc  Chore: add missing `log` method and simplify test codes

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[skywalking-python] 01/01: Chore: add missing `log` method and simplify test codes

Posted by ke...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch test/polish
in repository https://gitbox.apache.org/repos/asf/skywalking-python.git

commit 3defedcd63a1c18bbfc8e32f7a0578e151c1b736
Author: kezhenxu94 <ke...@163.com>
AuthorDate: Sun Jul 5 20:53:20 2020 +0800

    Chore: add missing `log` method and simplify test codes
---
 skywalking/trace/span/__init__.py           |  5 +++++
 tests/plugin/__init__.py                    | 16 ++++++++++++++--
 tests/plugin/sw_flask/test_flask.py         | 11 +++--------
 tests/plugin/sw_http/test_http.py           | 13 ++-----------
 tests/plugin/sw_http_wsgi/test_http_wsgi.py | 13 ++-----------
 tests/plugin/sw_requests/test_request.py    | 13 ++-----------
 6 files changed, 28 insertions(+), 43 deletions(-)

diff --git a/skywalking/trace/span/__init__.py b/skywalking/trace/span/__init__.py
index ec77a9b..87ba9ec 100644
--- a/skywalking/trace/span/__init__.py
+++ b/skywalking/trace/span/__init__.py
@@ -81,6 +81,11 @@ class Span(ABC):
         ])]
         return self
 
+    def log(self, ex: Exception) -> 'Span':
+        self.error_occurred = True
+        self.logs.append(Log(items=LogItem(key='Traceback', val=str(ex))))
+        return self
+
     def tag(self, tag: Tag) -> 'Span':
         if not tag.overridable:
             self.tags.append(deepcopy(tag))
diff --git a/tests/plugin/__init__.py b/tests/plugin/__init__.py
index 5bb74c8..fa60b02 100644
--- a/tests/plugin/__init__.py
+++ b/tests/plugin/__init__.py
@@ -14,11 +14,12 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-
+import inspect
 import os
 import unittest
 from abc import ABC
 from collections import namedtuple
+from os.path import dirname, abspath
 
 import requests
 from requests import Response
@@ -32,6 +33,13 @@ class BasePluginTest(unittest.TestCase, ABC):
     compose = None  # type: DockerCompose
 
     @classmethod
+    def setUpClass(cls):
+        cls.compose = DockerCompose(filepath=dirname(inspect.getfile(cls)))
+        cls.compose.start()
+
+        cls.compose.wait_for(cls.url(cls.collector_address()))
+
+    @classmethod
     def tearDownClass(cls):
         cls.compose.stop()
 
@@ -57,8 +65,12 @@ class BasePluginTest(unittest.TestCase, ABC):
         # type: () -> ServicePort
         return ServicePort(service='collector', port='12800')
 
-    def validate(self, expected_file_name):
+    def validate(self, expected_file_name=None):
         # type: (str) -> Response
+
+        if expected_file_name is None:
+            expected_file_name = os.path.join(dirname(inspect.getfile(self.__class__)), 'expected.data.yml')
+
         with open(expected_file_name) as expected_data_file:
             response = requests.post(
                 url=self.__class__.url(self.__class__.collector_address(), path='/dataValidate'),
diff --git a/tests/plugin/sw_flask/test_flask.py b/tests/plugin/sw_flask/test_flask.py
index dfeaaa6..185efdd 100644
--- a/tests/plugin/sw_flask/test_flask.py
+++ b/tests/plugin/sw_flask/test_flask.py
@@ -15,12 +15,8 @@
 # limitations under the License.
 #
 
-import os
 import time
 import unittest
-from os.path import abspath, dirname
-
-from testcontainers.compose import DockerCompose
 
 from tests.plugin import BasePluginTest
 
@@ -28,15 +24,14 @@ from tests.plugin import BasePluginTest
 class TestPlugin(BasePluginTest):
     @classmethod
     def setUpClass(cls):
-        cls.compose = DockerCompose(filepath=dirname(abspath(__file__)))
-        cls.compose.start()
+        BasePluginTest.setUpClass()
 
         cls.compose.wait_for(cls.url(('consumer', '9090'), 'users'))
 
-    def test_request_plugin(self):
+    def test_plugin(self):
         time.sleep(3)
 
-        self.validate(expected_file_name=os.path.join(dirname(abspath(__file__)), 'expected.data.yml'))
+        self.validate()
 
 
 if __name__ == '__main__':
diff --git a/tests/plugin/sw_http/test_http.py b/tests/plugin/sw_http/test_http.py
index 856db04..05b42d2 100644
--- a/tests/plugin/sw_http/test_http.py
+++ b/tests/plugin/sw_http/test_http.py
@@ -15,31 +15,22 @@
 # limitations under the License.
 #
 
-import os
 import time
 import unittest
-from os.path import abspath, dirname
 
 import requests
-from testcontainers.compose import DockerCompose
 
 from tests.plugin import BasePluginTest
 
 
 class TestPlugin(BasePluginTest):
-    @classmethod
-    def setUpClass(cls):
-        cls.compose = DockerCompose(filepath=dirname(abspath(__file__)))
-        cls.compose.start()
 
-        cls.compose.wait_for(cls.url(cls.collector_address()))
-
-    def test_request_plugin(self):
+    def test_plugin(self):
         print('traffic: ', requests.post(url=self.url(('consumer', '9090'))))
 
         time.sleep(3)
 
-        self.validate(expected_file_name=os.path.join(dirname(abspath(__file__)), 'expected.data.yml'))
+        self.validate()
 
 
 if __name__ == '__main__':
diff --git a/tests/plugin/sw_http_wsgi/test_http_wsgi.py b/tests/plugin/sw_http_wsgi/test_http_wsgi.py
index 856db04..05b42d2 100644
--- a/tests/plugin/sw_http_wsgi/test_http_wsgi.py
+++ b/tests/plugin/sw_http_wsgi/test_http_wsgi.py
@@ -15,31 +15,22 @@
 # limitations under the License.
 #
 
-import os
 import time
 import unittest
-from os.path import abspath, dirname
 
 import requests
-from testcontainers.compose import DockerCompose
 
 from tests.plugin import BasePluginTest
 
 
 class TestPlugin(BasePluginTest):
-    @classmethod
-    def setUpClass(cls):
-        cls.compose = DockerCompose(filepath=dirname(abspath(__file__)))
-        cls.compose.start()
 
-        cls.compose.wait_for(cls.url(cls.collector_address()))
-
-    def test_request_plugin(self):
+    def test_plugin(self):
         print('traffic: ', requests.post(url=self.url(('consumer', '9090'))))
 
         time.sleep(3)
 
-        self.validate(expected_file_name=os.path.join(dirname(abspath(__file__)), 'expected.data.yml'))
+        self.validate()
 
 
 if __name__ == '__main__':
diff --git a/tests/plugin/sw_requests/test_request.py b/tests/plugin/sw_requests/test_request.py
index 856db04..05b42d2 100644
--- a/tests/plugin/sw_requests/test_request.py
+++ b/tests/plugin/sw_requests/test_request.py
@@ -15,31 +15,22 @@
 # limitations under the License.
 #
 
-import os
 import time
 import unittest
-from os.path import abspath, dirname
 
 import requests
-from testcontainers.compose import DockerCompose
 
 from tests.plugin import BasePluginTest
 
 
 class TestPlugin(BasePluginTest):
-    @classmethod
-    def setUpClass(cls):
-        cls.compose = DockerCompose(filepath=dirname(abspath(__file__)))
-        cls.compose.start()
 
-        cls.compose.wait_for(cls.url(cls.collector_address()))
-
-    def test_request_plugin(self):
+    def test_plugin(self):
         print('traffic: ', requests.post(url=self.url(('consumer', '9090'))))
 
         time.sleep(3)
 
-        self.validate(expected_file_name=os.path.join(dirname(abspath(__file__)), 'expected.data.yml'))
+        self.validate()
 
 
 if __name__ == '__main__':