diff --git a/README.md b/README.md index 40abd045..58d1d599 100644 --- a/README.md +++ b/README.md @@ -8,3 +8,14 @@ ![Gitlab Code Coverage](https://img.shields.io/gitlab/pipeline-coverage/nofusscomputing%2Fprojects%2Fdjango_template?branch=master&style=plastic&logo=gitlab&label=Test%20Coverage) + +artifacts + + +dont work to file +https://gitlab.com/nofusscomputing/projects/django_template/-/jobs/artifacts/master/browse/artifacts/coverage/index.html?job=Unit + +works to dir +https://gitlab.com/nofusscomputing/projects/django_template/-/jobs/artifacts/master/browse/artifacts/coverage/?job=Unit + + diff --git a/app/core/http/browser.py b/app/core/http/browser.py new file mode 100644 index 00000000..08482cfc --- /dev/null +++ b/app/core/http/browser.py @@ -0,0 +1,89 @@ +import requests + + + +class Browser: + + response: requests.Response = None + + @property + def status() -> int: + """ HTTP Status Code + + Returns: + int: Return the HTTP status code from the last request + """ + return self.response.status_code + + + def get( + self, + url: str, + headers: dict = {}, + ssl_verify: bool = True + ) -> requests.Response: + """ Perform a HTTP/GET request + + Args: + url (str): URL to fetch. + headers (dict, optional): Request Headers. Defaults to {}. + ssl_verify (bool, optional): Verify the SSL Certificate. Defaults to True. + + Returns: + requests.Response: The requests response object + """ + + + headers.update({ + "Accept": "application/json", + "Authorization": "Bearer xx" # AWX auth + }) + + response = requests.get( + headers = headers, + timeout = 3, + url = url, + verify = ssl_verify, + ) + + if response.status_code == 200: + + self.response = response + + return self.response + + + def post( + self, + url: str, + headers: dict = {}, + data: dict = None, + ssl_verify: bool = True + ) -> requests.Response: + """ Perform an HTTP/POST request + + Args: + url (str): _description_ + headers (dict, optional): Request Headers. Defaults to {}. + data (dict, optional): _description_. Defaults to None. + ssl_verify (bool, optional): Verify the SSL Certificate. Defaults to True. + + Returns: + requests.Response: _description_ + """ + + response = request.post( + headers={ + "Content-Type": "application/json" + }, + timeout = 3, + url = url, + data = data, + verify = ssl_verify, + ) + + if response.status_code == 200: + + self.response = response + + return self.response