diff --git a/test/python/test_serialize.py b/test/python/test_serialize.py index 763828c..5e9668d 100644 --- a/test/python/test_serialize.py +++ b/test/python/test_serialize.py @@ -74,6 +74,17 @@ def get_kwargs(key, additional): return kwargs +def error_dump(e): + if ERROR_UNCATCHED: + raise + import traceback + + logger.error("==========[STACK TRACE]==========") + for trace in traceback.format_exc().split("\n"): + logger.error(trace) + logger.info("================================") + + api_conf = pt.Configuration( api_key={ "ClientLanguage": "en", @@ -123,15 +134,27 @@ for x in [pt.DefaultApi, pt.TweetApi, pt.UserApi, pt.UsersApi, pt.UserListApi]: time.sleep(SLEEP_TIME) except Exception as e: - if ERROR_UNCATCHED: - raise - import traceback - - logger.error("==========[STACK TRACE]==========") - for trace in traceback.format_exc().split("\n"): - logger.error(trace) - logger.info("================================") + error_dump(e) error_count += 1 + +try: + logger.info(f"Try: Self UserByScreenName Test") + kwargs = get_kwargs("UserByScreenName", {"screen_name": "a810810931931"}) + res = pt.UserApi(api_client).get_user_by_screen_name(**kwargs).to_dict() + if not res["data"]["user"]["result"]["legacy"]["screen_name"] == "a810810931931": + raise Exception("UserByScreenName failed") +except Exception as e: + error_dump(e) + error_count += 1 + +try: + logger.info(f"Try: Self UserTweets Test") + kwargs = get_kwargs("UserTweets", {"userId": "1180389371481976833"}) + pt.TweetApi(api_client).get_user_tweets(**kwargs) +except Exception as e: + error_dump(e) + error_count += 1 + if error_count > 0: exit(1) diff --git a/tools/hooks.py b/tools/hooks.py index 2e35c27..4546554 100644 --- a/tools/hooks.py +++ b/tools/hooks.py @@ -118,6 +118,20 @@ class SchemasCheck(SchemasHookBase): return value +class RequiredCheck(SchemasHookBase): + def hook(self, value: dict): + required = value.get("required", []) + + for key, property in value.get("properties", {}).items(): + if key in required and property.get("default") is not None: + print(f"{key} is required and has default value") + d = property.get("default") is None and property.get("nullable", False) + if property not in required and d: + print(f"{key} is not required and has no default value") + + return value + + # RequestHookBase extends