TerekhovaKate commented on code in PR #7400:
URL: https://github.com/apache/trafficcontrol/pull/7400#discussion_r1136061460


##########
traffic_ops/testing/api_contract/v4/conftest.py:
##########
@@ -0,0 +1,100 @@
+"""This module is used to create a Traffic Ops session 
+and to store prerequisite data for endpoints"""
+import json
+import logging
+import sys
+from random import randint
+from urllib.parse import urlparse
+import pytest
+from trafficops.tosession import TOSession
+from trafficops.restapi import OperationError
+
+
+# Create and configure logger
+logger = logging.getLogger()
+
+
+def pytest_addoption(parser):
+    """Passing in Traffic Ops Arguments [Username, Password, Url and Hostname] 
from Command Line"""
+    parser.addoption(
+        '--to_user', action='store', default='admin', help='User name for 
Traffic Ops Session'
+    )
+    parser.addoption(
+        '--to_password', action='store', default='twelve12', help='Password 
for Traffic Ops Session'
+    )
+    parser.addoption(
+        '--to_url', action='store', default='https://localhost/api', 
help='Traffic Ops URL'
+    )
+    parser.addoption(
+        '--hostname', action='store', default='localhost', help='Traffic Ops 
hostname'
+    )
+
+
+@pytest.fixture(name="to_args")
+def to_data(pytestconfig):
+    """PyTest fixture to store Traffic ops Arguments passed from command 
line"""
+    args = {}
+    args['user'] = pytestconfig.getoption('--to_user')
+    args['password'] = pytestconfig.getoption('--to_password')
+    args['url'] = pytestconfig.getoption('--to_url')
+    args['hostname'] = pytestconfig.getoption('--hostname')
+    return args
+
+
+@pytest.fixture(name="to_session")
+def to_login(to_args):
+    """PyTest Fixture to create a Traffic Ops session from Traffic Ops 
Arguments 
+    passed as command line arguments in to_args fixture in conftest
+    :param to_args: Fixture to get Traffic ops session arguments
+    :type to_args: dict
+    """
+    # Create a Traffic Ops V4 session and login
+    with open('to_data.json', encoding="utf-8", mode='r') as session_file:

Review Comment:
   move  to fixture
   
   ```python3
   @pytest.fixture(name="to_args")
    def to_data(pytestconfig):
   ```
   logically this belongs to fulfilling data during test init 
   ```python3
   with open('to_data.json', encoding="utf-8", mode='r') as session_file:
            data = json.load(session_file)
        session_data = data["test"]
        api_version = session_data["api_version"]
        port = session_data["port"]
        if to_args["user"] is None:
            logger.info(
                "Traffic Ops session data were not passed from Command line 
Args")
        else:
            logger.info("Parsed Traffic ops session data from args %s", to_args)
            session_data = to_args
        to_url = urlparse(session_data["url"])
   ```



-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@trafficcontrol.apache.org

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

Reply via email to