Browse Source

Logs for TestResult Update and pytest enhanced

Akash Singh 3 years ago
parent
commit
6549a5bb00

+ 7 - 0
baangt/base/ExportResults/ExportResults.py

@@ -593,8 +593,11 @@ class ExportResults:
 
     def update_result_in_testrun(self):
         # To update source testrun file
+        logger.debug("TestResult updating")
         testrun_column = self.dataRecords[0]["testcase_column"]
         if testrun_column:  # if testrun_column is greater than 0 that means testresult header is present in source file
+            logger.debug(f'Header for result update is {self.dataRecords[0]["testcase_column"]} in sheet ' \
+                         f'{self.dataRecords[0]["testcase_sheet"]} of file {self.dataRecords[0]["testcase_file"]}')
             testrun_file = load_workbook(self.dataRecords[0]["testcase_file"])
             testrun_sheet = testrun_file.get_sheet_by_name(self.dataRecords[0]["testcase_sheet"])
             for key, value in self.dataRecords.items():
@@ -606,8 +609,12 @@ class ExportResults:
                        f"TestCase_UUID: {str(self.testcase_uuids[key])}\r\n\r\n"
                 old_value = testrun_sheet.cell(value["testcase_row"] + 1, value["testcase_column"]).value or ""
                 testrun_sheet.cell(value["testcase_row"] + 1, value["testcase_column"]).value = data + old_value
+                logger.debug(f'Result written in row {value["testcase_row"]} column {value["testcase_column"]}')
+            logger.debug("Saving Source TestRun file.")
             testrun_file.save(self.dataRecords[0]["testcase_file"])
             logger.info(f"Source TestRun file {self.dataRecords[0]['testcase_file']} updated.")
+        else:
+            logger.debug(f"No TestResult column found")
 
     def __writeCell(self, line, cellNumber, testRecordDict, fieldName, strip=False):
         if fieldName in testRecordDict.keys() and testRecordDict[fieldName]:

+ 6 - 0
tests/test_AddressCreate.py

@@ -9,3 +9,9 @@ def test_getRandomAddress(CountryCode, PostalCode):
     address = addressCreate.returnAddress()
     assert address[GC.ADDRESS_COUNTRYCODE] == CountryCode
     assert address[GC.ADDRESS_POSTLCODE] == PostalCode
+
+
+def test_testStepAddressCreation():
+    from baangt.TestSteps.AddressCreation import AddressCreate
+    address = AddressCreate.returnAddress()
+    assert type(address) == dict

+ 20 - 0
tests/test_Append2BaseXls.py

@@ -0,0 +1,20 @@
+from baangt.base.ExportResults.Append2BaseXLS import Append2BaseXLS
+import pytest
+from unittest.mock import patch
+import icopy2xls
+
+
+class testRun:
+    def __init__(self):
+        self.globalSettings = {"AR2BXLS": "examples/CompleteBaangtWebdemo.xlsx,1;/fake/path/test.xlsx,1"}
+
+
+@pytest.fixture(scope="module")
+def testRunInstance():
+    return testRun()
+
+
+@patch.object(icopy2xls.Mover, "move")
+def test_A2BX(mock_mover, testRunInstance):
+    Append2BaseXLS(testRunInstance)
+    assert 1 == 1

+ 31 - 1
tests/test_browserHandling.py

@@ -1,6 +1,19 @@
 import pytest
 import platform
 from baangt.base import GlobalConstants as GC
+from baangt.base.BrowserHandling.BrowserHandling import BrowserDriver
+from unittest.mock import patch, MagicMock
+
+
+browserName = "FIREFOX"
+desired_app = [{GC.MOBILE_PLATFORM_NAME: "Android"}, {GC.MOBILE_PLATFORM_NAME: "iOS"}]
+mobileApp = ["True", "False"]
+mobile_app_setting = {
+    GC.MOBILE_APP_URL: "test",
+    GC.MOBILE_APP_PACKAGE: "com.baangt.pytest",
+    GC.MOBILE_APP_ACTIVITY: "baangt.test",
+    GC.MOBILE_APP_BROWSER_PATH: "temp"
+}
 
 
 @pytest.fixture
@@ -8,7 +21,6 @@ def getdriver():
     """ This will return BrowserDriver instance
         for below test function
     """
-    from baangt.base.BrowserHandling.BrowserHandling import BrowserDriver
     return BrowserDriver()
 
 
@@ -20,6 +32,7 @@ def test_setZoomFactor(getdriver):
     getdriver.createNewBrowser()
     getdriver.goToUrl("https://www.baangt.org")
     # FInd element by class
+    getdriver.zoomFactorDesired = True
     getdriver.setZoomFactor(lZoomFactor=200)
 
     # TODO add check
@@ -193,3 +206,20 @@ def test_setBrowserWindowSizeWithX(getdriver):
     result = getdriver.setBrowserWindowSize("--800x600")
     getdriver.closeBrowser()
     assert isinstance(result, dict)
+
+
+@pytest.mark.parametrize(
+    "browserName, desired_app, mobileApp, mobile_app_setting",
+    [
+        (browserName, desired_app[0], mobileApp[0], mobile_app_setting),
+        (browserName, desired_app[0], mobileApp[1], mobile_app_setting),
+        (browserName, desired_app[1], mobileApp[0], mobile_app_setting),
+        (browserName, desired_app[1], mobileApp[1], mobile_app_setting)
+    ]
+)
+def test_mobileConnectAppium(browserName, desired_app, mobileApp, mobile_app_setting):
+    from baangt.base.BrowserHandling.WebdriverFunctions import WebdriverFunctions
+    wdf = WebdriverFunctions
+    with patch.dict(wdf.BROWSER_DRIVERS, {GC.BROWSER_APPIUM: MagicMock}):
+        BrowserDriver._mobileConnectAppium(browserName, desired_app, mobileApp, mobile_app_setting)
+    assert 1 == 1

+ 27 - 0
tests/test_testrun.py

@@ -1,4 +1,14 @@
 import pytest
+from unittest.mock import patch
+
+
+class subprocess_communicate:
+    def __init__(self, *stdout, **stderr):
+        pass
+
+    def communicate(self):
+        return b"firefox\n", 1
+
 
 @pytest.fixture
 def testrun_obj():
@@ -46,6 +56,23 @@ def test_setResult(testrun_obj):
     # check the result
     new_result = set(old_result[0]+1, old_result[1])
     assert new_result == testrun_obj.getSuccessAndError()
+
+
+@pytest.mark.parametrize("system, os_version", [
+    ("Linux", ["redhat-release"]),
+    ("Linux", ["debian_version"]),
+    ("Darwin", ["firefox"]),
+    ("Darwin", ["chrome"])
+])
+@patch("subprocess.Popen", subprocess_communicate)
+@patch("os.listdir")
+@patch("platform.system")
+def test_ExcelImporter(mock_plat, mock_list, system, os_version):
+    from baangt.base.TestRunExcelImporter import TestRunExcelImporter
+    mock_plat.return_value = system
+    mock_list.return_value = os_version
+    TestRunExcelImporter.get_browser(TestRunExcelImporter)
+    assert mock_plat.call_count > 0