Best Python code snippet using tempest_python
test_cdsw_config_reader.py
Source:test_cdsw_config_reader.py  
...53            console_debug=True,54            format_str="%(message)s",55        )56    def test_config_reader_job_name(self):57        file = self._get_config_file(VALID_CONFIG_FILE)58        self._set_mandatory_env_vars()59        config = CdswJobConfigReader.read_from_file(file)60        self.assertIsNotNone(config)61        self.assertEqual("Reviewsync", config.job_name)62    def test_config_reader_valid_command_type(self):63        self._set_mandatory_env_vars()64        file = self._get_config_file(VALID_CONFIG_FILE)65        config = CdswJobConfigReader.read_from_file(file)66        self.assertIsNotNone(config)67        self.assertEqual(CommandType.REVIEWSYNC, config.command_type)68    def test_config_reader_email_body_file(self):69        self._set_mandatory_env_vars()70        file = self._get_config_file("cdsw_job_config_email_body_file.py")71        config = CdswJobConfigReader.read_from_file(file)72        self.assertIsNotNone(config.runs)73        run = config.runs[0]74        self.assertIsNotNone(run)75        self.assertIsNotNone(run.email_settings)76        self.assertEqual(run.email_settings.email_body_file_from_command_data, "report-short.html")77    def test_config_reader_invalid_command_type(self):78        file = self._get_config_file("cdsw_job_config_bad_command_type.py")79        with self.assertRaises(WrongTypeError) as ve:80            CdswJobConfigReader.read_from_file(file)81        LOG.info(ve.exception)82        self.assert_wrong_value_type(str(ve.exception), "command_type", "CommandType", "rrr", "str")83    def test_config_reader_valid_mandatory_env_vars(self):84        self._set_mandatory_env_vars()85        file = self._get_config_file(VALID_CONFIG_FILE)86        config = CdswJobConfigReader.read_from_file(file)87        self.assertIsNotNone(config)88        self.assertEqual(["GSHEET_CLIENT_SECRET", "GSHEET_SPREADSHEET", "MAIL_ACC_USER"], config.mandatory_env_vars)89    def test_config_reader_invalid_mandatory_env_var(self):90        file = self._get_config_file("cdsw_job_config_invalid_mandatory_env_var.py")91        with self.assertRaises(ValueError) as ve:92            CdswJobConfigReader.read_from_file(file)93        exc_msg = ve.exception.args[0]94        LOG.info(exc_msg)95        self.assertTrue(96            "Invalid mandatory env var specified as 'GSHEET_CLIENT_S'. Valid env vars for Command 'CommandType.REVIEWSYNC'"97            in str(exc_msg)98        )99    def test_config_reader_check_if_mandatory_env_vars_are_provided_at_runtime_positive_case(self):100        file = self._get_config_file(VALID_CONFIG_FILE)101        self._set_mandatory_env_vars()102        config = CdswJobConfigReader.read_from_file(file)103        self.assertIsNotNone(config)104        self.assertEqual(["GSHEET_CLIENT_SECRET", "GSHEET_SPREADSHEET", "MAIL_ACC_USER"], config.mandatory_env_vars)105    def test_config_reader_check_if_mandatory_env_vars_missing(self):106        file = self._get_config_file(VALID_CONFIG_FILE)107        os.environ["GSHEET_SPREADSHEET"] = "test_sheet"108        with self.assertRaises(ValueError) as ve:109            CdswJobConfigReader.read_from_file(file)110        exc_msg = ve.exception.args[0]111        LOG.info(exc_msg)112        self.assertIn("'GSHEET_CLIENT_SECRET'", exc_msg)113        self.assertNotIn("GSHEET_SPREADSHEET", exc_msg)114    def test_config_reader_mandatory_env_vars_are_of_correct_command_type(self):115        self._set_mandatory_env_vars()116        file = self._get_config_file(VALID_CONFIG_FILE)117        config = CdswJobConfigReader.read_from_file(file)118        self.assertIsNotNone(config)119        self.assertEqual(CommandType.REVIEWSYNC, config.command_type)120    def test_config_reader_valid_optional_env_vars(self):121        self._set_mandatory_env_vars()122        file = self._get_config_file(VALID_CONFIG_FILE)123        config = CdswJobConfigReader.read_from_file(file)124        self.assertIsNotNone(config)125        self.assertEqual(["BRANCHES", "GSHEET_JIRA_COLUMN"], config.optional_env_vars)126    def test_config_reader_valid_optional_env_vars_should_be_also_part_of_env_var_class(self):127        file = self._get_config_file("cdsw_job_config_invalid_optional_env_var.py")128        with self.assertRaises(ValueError) as ve:129            CdswJobConfigReader.read_from_file(file)130        exc_msg = ve.exception.args[0]131        LOG.info(exc_msg)132        self.assertTrue(133            "Invalid mandatory env var specified as 'GSHEET_CLIENT_S'. Valid env vars for Command 'CommandType.REVIEWSYNC'"134            in str(exc_msg)135        )136    def test_config_reader_if_optional_arg_is_mapped_to_yarndevtools_args_it_becomes_mandatory(self):137        self._set_mandatory_env_vars()138        del os.environ["GSHEET_JIRA_COLUMN"]139        # "GSHEET_JIRA_COLUMN" is intentionally deleted!140        file = self._get_config_file(VALID_CONFIG_FILE)141        with self.assertRaises(ValueError) as ve:142            CdswJobConfigReader.read_from_file(file)143        exc_msg = ve.exception.args[0]144        LOG.info(exc_msg)145        self.assertIn("GSHEET_JIRA_COLUMN", exc_msg)146    def test_config_reader_variables(self):147        file = self._get_config_file(VALID_CONFIG_FILE)148        self._set_mandatory_env_vars()149        config = CdswJobConfigReader.read_from_file(file)150        self.assertIsNotNone(config.global_variables)151        self.assertEqual("testAlgorithm", config.global_variables["algorithm"])152        # command_data_testAlgorithm_20220105_214629.zip153        self._match_env_var_for_regex(config, "commandDataFileName", r"command_data_testAlgorithm_(.*)\.zip")154    def test_config_reader_using_builtin_variable(self):155        self._set_mandatory_env_vars()156        file = self._get_config_file("cdsw_job_config_invalid_using_builtin_variable.py")157        with self.assertRaises(ValueError) as ve:158            CdswJobConfigReader.read_from_file(file)159        exc_msg = ve.exception.args[0]160        LOG.info(exc_msg)161        self.assertIn("Cannot use variables with the same name as built-in variables", exc_msg)162    def test_config_reader_using_builtin_variable_in_other_variable(self):163        self._set_mandatory_env_vars()164        file = self._get_config_file("cdsw_job_config_using_builtin_variable_in_other_variable.py")165        config = CdswJobConfigReader.read_from_file(file)166        job_start_date = config.job_start_date()167        expected_subject = f"YARN reviewsync report [start date: {job_start_date}]"168        expected_command_data_file_name = f"command_data_{job_start_date}.zip"169        self.assertIsNotNone(config.runs[0])170        self.assertEqual(171            {172                "sender": "YARN reviewsync",173                "subject": expected_subject,174                "commandDataFileName": expected_command_data_file_name,175            },176            config.global_variables,177        )178        self.assertEqual(expected_command_data_file_name, config.runs[0].email_settings.attachment_file_name)179        self.assertEqual("report-short.html", config.runs[0].email_settings.email_body_file_from_command_data)180        self.assertEqual("YARN reviewsync", config.runs[0].email_settings.sender)181        self.assertEqual(expected_subject, config.runs[0].email_settings.subject)182    def test_config_reader_transitive_variable_resolution_endless(self):183        self._set_mandatory_env_vars()184        file = self._get_config_file("cdsw_job_config_transitive_variable_resolution_endless.py")185        with self.assertRaises(ValueError) as ve:186            CdswJobConfigReader.read_from_file(file)187        exc_msg = ve.exception.args[0]188        LOG.info(exc_msg)189        self.assertIn("Cannot resolve variable 'varD'", exc_msg)190    def test_config_reader_transitive_variable_resolution_unresolved(self):191        self._set_mandatory_env_vars()192        file = self._get_config_file("cdsw_job_config_transitive_variable_resolution_unresolved.py")193        with self.assertRaises(ValueError) as ve:194            CdswJobConfigReader.read_from_file(file)195        exc_msg = ve.exception.args[0]196        LOG.info(exc_msg)197        self.assertIn("Cannot resolve variable 'varX'", exc_msg)198    def test_config_reader_transitive_variable_resolution_valid(self):199        self._set_mandatory_env_vars()200        file = self._get_config_file("cdsw_job_config_transitive_variable_resolution_valid.py")201        config = CdswJobConfigReader.read_from_file(file)202        self.assertIsNotNone(config.global_variables)203        self.assertEqual("testAlgorithm", config.global_variables["algorithm"])204        self.assertEqual("no_var_here", config.global_variables["varE"])205        self.assertEqual("no_var_here", config.global_variables["varA"])206        self.assertEqual("no_var_here", config.global_variables["varB"])207        self.assertEqual("no_var_here", config.global_variables["varC"])208        self.assertEqual("no_var_here", config.global_variables["varD"])209    def test_config_reader_transitive_variable_resolution_valid_more_complex(self):210        self._set_mandatory_env_vars()211        file = self._get_config_file("cdsw_job_config_transitive_variable_resolution_valid_more_complex.py")212        config = CdswJobConfigReader.read_from_file(file)213        self.assertIsNotNone(config.global_variables)214        self.assertEqual("testAlgorithm", config.global_variables["algorithm"])215        self.assertEqual("no_var_here", config.global_variables["varE"])216        self.assertEqual("no_var_here", config.global_variables["varA"])217        self.assertEqual("no_var_here", config.global_variables["varB"])218        self.assertEqual("no_var_here", config.global_variables["varC"])219        self.assertEqual("no_var_here", config.global_variables["varD"])220        self.assertEqual("s", config.global_variables["varS"])221        self.assertEqual("xy", config.global_variables["varZ"])222        self.assertEqual("xys", config.global_variables["varT"])223        self.assertEqual("xys", config.global_variables["varU"])224    def test_config_reader_transitive_variable_resolution_valid_more_complex2(self):225        self._set_mandatory_env_vars()226        file = self._get_config_file("cdsw_job_config_transitive_variable_resolution_valid_more_complex2.py")227        config = CdswJobConfigReader.read_from_file(file)228        self.assertIsNotNone(config.global_variables)229        self.assertEqual("testAlgorithm", config.global_variables["algorithm"])230        self.assertEqual("x", config.global_variables["varZ"])231        self.assertEqual("xs", config.global_variables["varT"])232        self.assertEqual("x", config.global_variables["varX"])233        self.assertEqual("s", config.global_variables["varS"])234    def test_config_reader_email_settings(self):235        self._set_mandatory_env_vars()236        file = self._get_config_file("cdsw_job_config_email_settings_with_vars.py")237        config = CdswJobConfigReader.read_from_file(file)238        email_settings_1 = config.runs[0].email_settings239        email_settings_2 = config.runs[1].email_settings240        self.assertIsNotNone(email_settings_1)241        self.assertIsNotNone(email_settings_2)242        self.assertEqual("testSubject+v2+v1_1", email_settings_1.subject)243        self.assertEqual("attachmentFileName+v3+v4", email_settings_1.attachment_file_name)244        self.assertFalse(email_settings_1.enabled)245        self.assertTrue(email_settings_1.send_attachment)246        self.assertEqual("testSubject+v2+v1_2", email_settings_2.subject)247        self.assertEqual("attachmentFileName+v1", email_settings_2.attachment_file_name)248        self.assertFalse(email_settings_2.enabled)249        self.assertTrue(email_settings_2.send_attachment)250    def test_config_reader_drive_api_upload_settings(self):251        self._set_mandatory_env_vars()252        file = self._get_config_file(VALID_CONFIG_FILE)253        config = CdswJobConfigReader.read_from_file(file)254        drive_api_upload_settings = config.runs[0].drive_api_upload_settings255        self.assertIsNotNone(drive_api_upload_settings)256        self.assertEqual("simple", drive_api_upload_settings.file_name)257        self.assertFalse(drive_api_upload_settings.enabled)258    def test_config_reader_drive_api_upload_settings_with_vars(self):259        self._set_mandatory_env_vars()260        file = self._get_config_file("cdsw_job_config_drive_api_upload_settings_with_vars.py")261        config = CdswJobConfigReader.read_from_file(file)262        drive_api_upload_settings = config.runs[0].drive_api_upload_settings263        self.assertIsNotNone(drive_api_upload_settings)264        self.assertEqual("constant1_v1_constant2_v3_constant3", drive_api_upload_settings.file_name)265        self.assertFalse(drive_api_upload_settings.enabled)266    def test_config_reader_runconfig_defined_yarn_dev_tools_arguments_env_vars(self):267        self._set_mandatory_env_vars()268        file = self._get_config_file("cdsw_job_config_runconfig_defined_yarn_dev_tools_arguments_env_vars.py")269        config = CdswJobConfigReader.read_from_file(file)270        self.assertIsNotNone(config.runs[0])271        self.assertIsNotNone(config.runs[0].yarn_dev_tools_arguments)272        self.assertEqual(273            [274                "--debug",275                "REVIEWSYNC",276                "--gsheet",277                '--gsheet-client-secret "gsheet client secret"',278                '--gsheet-spreadsheet "gsheet spreadsheet"',279                '--gsheet-jira-column "gsheet jira column"',280            ],281            config.yarn_dev_tools_arguments,282        )283        self.assertEqual(284            [285                "--debug",286                "REVIEWSYNC",287                "--gsheet",288                '--gsheet-client-secret "gsheet client secret"',289                '--gsheet-spreadsheet "gsheet spreadsheet"',290                '--gsheet-jira-column "gsheet jira column"',291                "--arg1",292                "--arg2 param1 param2",293                "--arg3 param1",294                "--arg4",295            ],296            config.runs[0].yarn_dev_tools_arguments,297        )298    def test_config_reader_runconfig_defined_yarn_dev_tools_arguments_regular_vars(self):299        self._set_mandatory_env_vars()300        file = self._get_config_file("cdsw_job_config_runconfig_defined_yarn_dev_tools_arguments_regular_vars.py")301        config = CdswJobConfigReader.read_from_file(file)302        job_start_date = config.job_start_date()303        self.assertIsNotNone(config.runs[0])304        self.assertEqual(305            [306                "--debug",307                "REVIEWSYNC",308                "--gsheet",309                "--algo testAlgorithm",310                f"--command-data-filename command_data_testAlgorithm_{job_start_date}.zip",311            ],312            config.yarn_dev_tools_arguments,313        )314        self.assertEqual(315            [316                "--debug",317                "REVIEWSYNC",318                "--gsheet",319                "--algo testAlgorithm",320                f"--command-data-filename command_data_testAlgorithm_{job_start_date}.zip",321                "--arg1",322                "--arg2 param1 param2",323                "--arg3 param1",324                "--arg4",325            ],326            config.runs[0].yarn_dev_tools_arguments,327        )328    def test_config_reader_runconfig_defined_yarn_dev_tools_arguments_overrides(self):329        self._set_mandatory_env_vars()330        file = self._get_config_file("cdsw_job_config_runconfig_defined_yarn_dev_tools_arguments_overrides.py")331        config = CdswJobConfigReader.read_from_file(file)332        self.assertIsNotNone(config.runs[0])333        self.assertEqual(334            [335                "--debug",336                "REVIEWSYNC",337                "--gsheet",338                '--gsheet-client-secret "gsheet client secret"',339                '--gsheet-spreadsheet "gsheet spreadsheet"',340                '--gsheet-jira-column "gsheet jira column"',341            ],342            config.yarn_dev_tools_arguments,343        )344        self.assertEqual(345            [346                "--debug",347                "REVIEWSYNC",348                "--gsheet",349                "--gsheet-client-secret bla",350                "--gsheet-spreadsheet bla2",351                '--gsheet-jira-column "gsheet jira column"',352                "--arg1",353            ],354            config.runs[0].yarn_dev_tools_arguments,355        )356    def test_config_reader_runconfig_defined_yarn_dev_tools_variable_overrides(self):357        self._set_mandatory_env_vars()358        file = self._get_config_file("cdsw_job_config_runconfig_defined_yarn_dev_tools_variable_overrides.py")359        config = CdswJobConfigReader.read_from_file(file)360        self.assertIsNotNone(config.runs[0])361        original_yarndevtools_args = [362            "--debug",363            "REVIEWSYNC",364            "--gsheet",365            '--gsheet-client-secret "gsheet client secret"',366            '--gsheet-spreadsheet "gsheet spreadsheet"',367            '--gsheet-jira-column "gsheet jira column"',368        ]369        self.assertEqual(370            original_yarndevtools_args,371            config.yarn_dev_tools_arguments,372        )373        self.assertEqual(374            original_yarndevtools_args375            + [376                "--testArg1 yetAnotherAlgorithm",377                "--testArg2 overriddenCommandData",378                "--testArg3 something+globalValue1",379                "--testArg4 something+globalValue2",380                "--testArg5 a new variable",381            ],382            config.runs[0].yarn_dev_tools_arguments,383        )384    def test_config_reader_two_run_configs_defined_complex(self):385        self._set_mandatory_env_vars()386        file = self._get_config_file("cdsw_job_config_two_run_configs_defined_complex.py")387        config = CdswJobConfigReader.read_from_file(file)388        self.assertIsNotNone(config.runs[0])389        self.assertIsNotNone(config.runs[1])390        original_yarndevtools_args = [391            "--debug",392            "REVIEWSYNC",393            "--gsheet",394            '--gsheet-client-secret "gsheet client secret"',395            '--gsheet-spreadsheet "gsheet spreadsheet"',396            '--gsheet-jira-column "gsheet jira column"',397        ]398        self.assertEqual(399            original_yarndevtools_args,400            config.yarn_dev_tools_arguments,401        )402        self.assertEqual(403            original_yarndevtools_args404            + [405                "--testArg1 yetAnotherAlgorithm",406                "--testArg2 overriddenCommandData",407                "--testArg3 something+globalValue1",408                "--testArg4 something+globalValue2",409                "--testArg5 a new variable",410            ],411            config.runs[0].yarn_dev_tools_arguments,412        )413        self.assertEqual(414            original_yarndevtools_args415            + [416                "--testArg1 yetAnotherAlgorithm2",417                "--testArg2 overriddenCommandData2",418                "--testArg3 var1+globalValue3",419                "--testArg4 var2+globalValue4",420                "--testArg5 var3",421            ],422            config.runs[1].yarn_dev_tools_arguments,423        )424    def test_config_reader_two_run_configs_with_same_name_not_allowed(self):425        self._set_mandatory_env_vars()426        file = self._get_config_file("cdsw_job_config_two_run_configs_same_name.py")427        with self.assertRaises(ValueError) as ve:428            CdswJobConfigReader.read_from_file(file)429        exc_msg = ve.exception.args[0]430        LOG.info(exc_msg)431        self.assertIn("Duplicate job name not allowed!", exc_msg)432    def test_config_reader_env_var_sanitize(self):433        self._set_env_vars_from_dict(434            {435                "GSHEET_WORKSHEET": "env1",436                "GSHEET_SPREADSHEET": "env2 env22",437                "GSHEET_JIRA_COLUMN": "env3 'env33' env333",438                "GSHEET_STATUS_INFO_COLUMN": '"env4 env44"',439                "GSHEET_UPDATE_DATE_COLUMN": '"env5 env5555"',440                "BRANCHES": "branch-3.2 branch-3.3",441            }442        )443        file = self._get_config_file("cdsw_job_config_env_var_sanitize_test.py")444        config = CdswJobConfigReader.read_from_file(file)445        self.assertEqual(446            [447                "--debug",448                "REVIEWSYNC",449                "--gsheet",450                "--arg1 env1",451                '--arg2 "env2 env22"',452                "--arg3 env3 'env33' env333",453                '--arg4 "env4 env44"',454                '--arg5 "env5 env5555"',455                "--arg6 branch-3.2 branch-3.3",456            ],457            config.runs[0].yarn_dev_tools_arguments,458        )459    def test_config_reader_yarn_dev_tools_arguments_with_includes(self):460        self._set_mandatory_env_vars()461        file = self._get_config_file("cdsw_job_config_yarn_dev_tools_arguments_with_includes.py")462        config = CdswJobConfigReader.read_from_file(file)463        self.assertEqual(464            [465                "--debug",466                "REVIEWSYNC",467                "--gsheet",468                '--gsheet-client-secret "gsheet client secret"',469                '--gsheet-spreadsheet "gsheet spreadsheet"',470                '--gsheet-jira-column "gsheet jira column"',471                "--force-sending-email",472                "--cache-type google_drive",473            ],474            config.runs[0].yarn_dev_tools_arguments,475        )476    def test_config_reader_yarn_dev_tools_arguments_with_conditional_env_var(self):477        self._set_mandatory_env_vars()478        os.environ["ENV1"] = "envVal1"479        os.environ["ENV3"] = "envVal3"480        file = self._get_config_file("cdsw_job_config_yarn_globals_with_conditional_env_var.py")481        config = CdswJobConfigReader.read_from_file(file)482        self.assertEqual(483            [484                "--debug",485                "REVIEWSYNC",486                "--gsheet",487                '--gsheet-client-secret "gsheet client secret"',488                '--gsheet-spreadsheet "gsheet spreadsheet"',489                '--gsheet-jira-column "gsheet jira column"',490                "--arg1 envVal1",491                "--arg2 False",492                "--arg3 envVal3",493                "--arg4 1999",494            ],495            config.runs[0].yarn_dev_tools_arguments,496        )497    def _match_env_var_for_regex(self, config, env_name, regex):498        LOG.debug(499            "Matching Env var with name '%s' with resolved value of %s",500            env_name,501            config.global_variables[env_name],502        )503        match = re.match(regex, config.global_variables[env_name])504        if not match:505            self.fail(506                "Env var with name '{}' with resolved value of {} does not match regex: {}. Original value: {}".format(507                    env_name, config.global_variables[env_name], regex, config.global_variables[env_name]508                )509            )510        LOG.debug("Found date: %s", match.group(1))511    @classmethod512    def _get_config_file(cls, file_name):513        file = FileUtils.join_path(cls.configfiles_base_dir, file_name)514        return file515    @staticmethod516    def validate_date(date_text):517        try:518            datetime.datetime.strptime(date_text, "%Y%m%d_%H%M%S")519        except ValueError:520            raise ValueError("Incorrect data format, should be YYYY-MM-DD")521    def assert_wrong_value_type(self, exception_msg, field_name, expected_type, actual_value, actual_type):522        self.assertEqual(523            exception_msg,524            f'wrong value type for field "{field_name}" - should be "{expected_type}" instead of value "{actual_value}" of type "{actual_type}"',...config.py
Source:config.py  
...22    _FIELD_ATTACHMENT_DESCRIPTION = "DESCRIPTION"23    _FIELD_ATTACHMENT_CONTENT_TYPE = "CONTENT_TYPE"24    @classmethod25    def get_attachment_content_type(cls) -> str:26        return cls._get_config_file()[cls._FIELD_ATTACHMENT_PUBLIC][cls._FIELD_ATTACHMENT_CONTENT_TYPE]27    @classmethod28    def get_attachment_description(cls) -> str:29        return cls._get_config_file()[cls._FIELD_ATTACHMENT_PUBLIC][cls._FIELD_ATTACHMENT_DESCRIPTION]30    @classmethod31    def get_attachment_path_in(cls) -> str:32        return cls._get_config_file()[cls._FIELD_ATTACHMENT_PUBLIC][cls._FIELD_ATTACHMENT_PATH_IN]33    @classmethod34    def get_api_key(cls) -> str:35        return cls._get_config_file()[cls._FIELD_API_KEY]36    @classmethod37    def get_user_id(cls) -> int:38        return int(cls._get_config_file()[cls._FIELD_USER_ID])39    @classmethod40    def get_monetary_account_id_2(cls) -> int:41        return int(cls._get_config_file()[cls._FIELD_MONETARY_ACCOUNT_ID_2])42    @classmethod43    def get_monetary_account_id_1(cls) -> int:44        return int(cls._get_config_file()[cls._FIELD_MONETARY_ACCOUNT_ID_1])45    @classmethod46    def get_cash_register_id(cls) -> str:47        return cls._get_config_file()[cls._FIELD_TAB_USAGE][cls._FIELD_CASH_REGISTER_ID]48    @classmethod49    def get_pointer_counter_party_self(cls) -> Pointer:50        type_ = cls._get_config_file()[cls._FIELD_COUNTER_PARTY_SELF][cls._FIELD_TYPE]51        alias = cls._get_config_file()[cls._FIELD_COUNTER_PARTY_SELF][cls._FIELD_ALIAS]52        return Pointer(type_, alias)53    @classmethod54    def get_pointer_counter_party_other(cls) -> Pointer:55        type_ = cls._get_config_file()[cls._FIELD_COUNTER_PARTY_OTHER][cls._FIELD_TYPE]56        alias = cls._get_config_file()[cls._FIELD_COUNTER_PARTY_OTHER][cls._FIELD_ALIAS]57        return Pointer(type_, alias)58    @classmethod59    def get_permitted_ips(cls) -> List[str]:60        permitted_ips_str = cls._get_config_file()[cls._FIELD_PERMITTED_IPS]61        if not permitted_ips_str:62            return []63        return permitted_ips_str.split(cls._DELIMITER_IPS)64    @classmethod65    def _get_config_file(cls) -> Any:66        file_path = os.path.dirname(os.path.realpath(__file__))67        with open(file_path + "/assets/config.json", "r") as f:...utils.py
Source:utils.py  
...13        config_parser.read(config_file_path)14        username = config_parser.get(config._SECTION, "username")15        password = config_parser.get(config._SECTION, "password")16    else:17        print("Your JIRA creadentials will be saved in %s" % (_get_config_file()))18        username = input("Username: ")19        password = getpass.getpass("Password: ")20    21        config_parser.add_section(config._SECTION)22        config_parser.set(config._SECTION, "username", username)23        config_parser.set(config._SECTION, "password", password)24    25        with open(config_file_path, "wb") as config_file:26            config_parser.write(config_file)27    return username, password28def _get_home_directory():29    return os.path.expanduser("~")30def _get_config_file():31    return os.path.join(_get_home_directory(), config._CONFIG_FILE)32def print_progress(index, total):33    sys.stdout.write("\rTicket %d out of %d done" % (index, total))34    sys.stdout.flush()35def validate_credentials():36    username, password = _get_credentails(_get_config_file())37    params = {"username": username}38    results = requests.get(config._BASE_URL + config._USER, auth=HTTPBasicAuth(username, password), params=params)39    if results.status_code == 401:40        return False41    return True42def get_request_auth(api_call, params=None, json=True):43    username, password = _get_credentails(_get_config_file())44    if params:45        results = requests.get(config._BASE_URL + api_call, auth=HTTPBasicAuth(username, password), params=params)46    else:47        results = requests.get(config._BASE_URL + api_call, auth=HTTPBasicAuth(username, password))48    if results:49        if json:50            return results.json()51        return results52    else:53        None54def put_request_auth(api_call, payload):55    username, password = _get_credentails(_get_config_file())56    headers = {"Content-Type": "application/json; charset=utf8"}57    result = requests.put(config._BASE_URL + api_call, auth=HTTPBasicAuth(username, password), headers=headers, json=payload)58    if result.status_code == 204:59        return True60    return False61def add_label_payload(label):62    return {63        "update":64            {"labels":65                [66                    {"add":"%s" % label}67                ]68            }69        }Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
