From 0ceb50a3c8fd016ada8778ee94d5ddb92ffde1f1 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 15:11:02 +0300 Subject: [PATCH 01/27] f --- .github/ISSUE_TEMPLATE.md | 2 +- README.md | 2 -- cli/cli.py | 16 ++-------------- tests/test_cli.py | 2 +- 4 files changed, 4 insertions(+), 18 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 55686fea..9a3c4ef8 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -11,4 +11,4 @@ ## What did you actually see/happen? ## Paste here the log output generated by `naz`, if any. Please remember to remove any sensitive items from the log before pasting here. -## If you can, run naz with loglevel set to debug; eg `naz-cli --loglevel DEBUG` +## If you can, run naz with loglevel set to debug diff --git a/README.md b/README.md index 01bba5ca..b7c0ec06 100644 --- a/README.md +++ b/README.md @@ -155,8 +155,6 @@ example usage: naz-cli --config /path/to/my_config.json optional arguments: -h, --help show this help message and exit --version The currently installed naz version. - --loglevel {NOTSET,DEBUG,INFO,WARNING,ERROR,CRITICAL} - The log level to output log messages at. eg: --loglevel DEBUG --config CONFIG The config file to use. eg: --config /path/to/my_config.json ``` diff --git a/cli/cli.py b/cli/cli.py index 1e770e6c..dcff5665 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -76,15 +76,6 @@ def make_parser(): version="%(prog)s {version}".format(version=naz.__version__.about["__version__"]), help="The currently installed naz version.", ) - parser.add_argument( - "--loglevel", - type=str, - required=False, - default="INFO", - choices=["NOTSET", "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], - help="The log level to output log messages at. \ - eg: --loglevel DEBUG", - ) parser.add_argument( "--config", required=True, @@ -121,10 +112,6 @@ def main(): config_contents = config.read() # todo: validate that config_contents hold all the required params kwargs = json.loads(config_contents) - - loglevel = ( - kwargs.get("loglevel").upper() if kwargs.get("loglevel") else args.loglevel.upper() - ) log_metadata = kwargs.get("log_metadata") if not log_metadata: log_metadata = {} @@ -139,7 +126,8 @@ def main(): "client_id": client_id, } ) - logger.bind(level=loglevel, log_metadata=log_metadata) + # TODO: fix this level hard-coding + logger.bind(level="INFO", log_metadata=log_metadata) logger.log(logging.INFO, "\n\n\t {} \n\n".format("Naz: the SMPP client.")) if dry_run: diff --git a/tests/test_cli.py b/tests/test_cli.py index 339866f2..5a8398fc 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -34,7 +34,7 @@ def add_argument(self, *args, **kwargs): def parse_args(self, args=None, namespace=None): naz_config_file = io.StringIO(json.dumps(self.naz_config)) - return argparse.Namespace(config=naz_config_file, dry_run=True, loglevel="DEBUG") + return argparse.Namespace(config=naz_config_file, dry_run=True) class TestCli(TestCase): From 021c5e5e4825e2e958c1767ef201033183ae50f3 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 15:15:45 +0300 Subject: [PATCH 02/27] f --- .travis.yml | 2 +- cli/cli.py | 12 ++++++------ documentation/sphinx-docs/introduction.rst | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 216a988a..038cdd60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ script: # see: http://mypy.readthedocs.io/en/latest/common_issues.html#displaying-the-type-of-an-expression - mypy --show-column-numbers --ignore-missing-imports -p cli -p naz #--strict - naz-cli --version && naz-cli --help - - naz-cli --config examples/example_config.json --dry-run + - naz-cli --app examples/example_config.json --dry-run - coverage erase - export CI_ENVIRONMENT=Yes && coverage run --omit="*tests*,*examples/*,*.virtualenvs/*,*virtualenv/*,*.venv/*,*__init__*" -m unittest discover -v -s . && bash <(curl -s https://codecov.io/bash) - coverage report --show-missing --fail-under=84 diff --git a/cli/cli.py b/cli/cli.py index dcff5665..d71f019a 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -67,7 +67,7 @@ def make_parser(): description="""naz is an async SMPP client. example usage: naz-cli \ - --config /path/to/my_config.json + --app /path/to/my_app.json """, ) parser.add_argument( @@ -77,11 +77,11 @@ def make_parser(): help="The currently installed naz version.", ) parser.add_argument( - "--config", + "--app", required=True, type=argparse.FileType(mode="r"), help="The config file to use. \ - eg: --config /path/to/my_config.json", + eg: --app /path/to/my_app.json", ) parser.add_argument( "--dry-run", @@ -108,10 +108,10 @@ def main(): args = parser.parse_args() dry_run = args.dry_run - config = args.config - config_contents = config.read() + app = args.app + app_contents = app.read() # todo: validate that config_contents hold all the required params - kwargs = json.loads(config_contents) + kwargs = json.loads(app_contents) log_metadata = kwargs.get("log_metadata") if not log_metadata: log_metadata = {} diff --git a/documentation/sphinx-docs/introduction.rst b/documentation/sphinx-docs/introduction.rst index da4f2164..55810fcc 100644 --- a/documentation/sphinx-docs/introduction.rst +++ b/documentation/sphinx-docs/introduction.rst @@ -86,7 +86,7 @@ NB: ===================== ``naz`` also ships with a commandline interface app called ``naz-cli`` (it is also installed by default when you `pip install naz`). -create a json config file, eg; `/tmp/my_config.json` +create a json config file, eg; `/tmp/my_app.json` .. code-block:: bash @@ -115,14 +115,14 @@ and a python file, `myfile.py` (in the current working directory) with the conte then run: -``naz-cli --config /tmp/my_config.json`` +``naz-cli --app /tmp/my_app.json`` NB: * (a) For more information about the naz config file, consult the `documentation here `_ * (b) More examples can be found `here `_ As an example, start the SMSC simulator(``docker-compose up``) then in another terminal run, - ``naz-cli --config examples/example_config.json`` + ``naz-cli --app examples/example_config.json`` 3 Features From 987dc6364b8bac47fdceccb4a64b4cd840fa6246 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 15:16:43 +0300 Subject: [PATCH 03/27] f --- tests/test_cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_cli.py b/tests/test_cli.py index 5a8398fc..8411dbdb 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -34,7 +34,7 @@ def add_argument(self, *args, **kwargs): def parse_args(self, args=None, namespace=None): naz_config_file = io.StringIO(json.dumps(self.naz_config)) - return argparse.Namespace(config=naz_config_file, dry_run=True) + return argparse.Namespace(app=naz_config_file, dry_run=True) class TestCli(TestCase): From 6a7964f5b746f857bdf21f2bb1caa9eb0aa70c99 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 16:50:52 +0300 Subject: [PATCH 04/27] f --- .travis.yml | 2 +- cli/cli.py | 102 +++------------------ cli/utils/load.py | 47 ++++++++++ documentation/sphinx-docs/introduction.rst | 4 +- examples/example_config.json | 17 ---- examples/example_config.py | 20 ++++ examples/example_klasses.py | 8 +- tests/test_cli.py | 2 +- 8 files changed, 88 insertions(+), 114 deletions(-) create mode 100644 cli/utils/load.py delete mode 100644 examples/example_config.json create mode 100644 examples/example_config.py diff --git a/.travis.yml b/.travis.yml index 038cdd60..d99cab20 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ script: # see: http://mypy.readthedocs.io/en/latest/common_issues.html#displaying-the-type-of-an-expression - mypy --show-column-numbers --ignore-missing-imports -p cli -p naz #--strict - naz-cli --version && naz-cli --help - - naz-cli --app examples/example_config.json --dry-run + - naz-cli --client examples/example_config.json --dry-run - coverage erase - export CI_ENVIRONMENT=Yes && coverage run --omit="*tests*,*examples/*,*.virtualenvs/*,*virtualenv/*,*.venv/*,*__init__*" -m unittest discover -v -s . && bash <(curl -s https://codecov.io/bash) - coverage report --show-missing --fail-under=84 diff --git a/cli/cli.py b/cli/cli.py index d71f019a..ceb51a09 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -10,7 +10,7 @@ import naz -from .utils import sig +from .utils import sig, load os.environ["PYTHONASYNCIODEBUG"] = "1" @@ -67,7 +67,7 @@ def make_parser(): description="""naz is an async SMPP client. example usage: naz-cli \ - --app /path/to/my_app.json + --client /path/to/my_app.json """, ) parser.add_argument( @@ -77,11 +77,10 @@ def make_parser(): help="The currently installed naz version.", ) parser.add_argument( - "--app", + "--client", required=True, - type=argparse.FileType(mode="r"), - help="The config file to use. \ - eg: --app /path/to/my_app.json", + help="The dotted path to a python file conatining a `naz.Client` instance. \ + eg: --client dotted.path.to.a.naz.Client.class.instance", ) parser.add_argument( "--dry-run", @@ -100,36 +99,16 @@ def main(): """ _client_id = "".join(random.choices(string.ascii_uppercase + string.digits, k=17)) logger = naz.logger.SimpleLogger("naz.cli") + logger.log(logging.INFO, "\n\n\t {} \n\n".format("Naz: the SMPP client.")) logger.log(logging.INFO, {"event": "naz.cli.main", "stage": "start", "client_id": _client_id}) loop = asyncio.get_event_loop() try: parser = make_parser() args = parser.parse_args() - dry_run = args.dry_run - app = args.app - app_contents = app.read() - # todo: validate that config_contents hold all the required params - kwargs = json.loads(app_contents) - log_metadata = kwargs.get("log_metadata") - if not log_metadata: - log_metadata = {} - client_id = kwargs.get("client_id") - if not client_id: - client_id = _client_id - kwargs["client_id"] = client_id - log_metadata.update( - { - "smsc_host": kwargs.get("smsc_host"), - "system_id": kwargs.get("system_id"), - "client_id": client_id, - } - ) - # TODO: fix this level hard-coding - logger.bind(level="INFO", log_metadata=log_metadata) - - logger.log(logging.INFO, "\n\n\t {} \n\n".format("Naz: the SMPP client.")) + client = args.client + client = load.load_class(client) if dry_run: logger.log( logging.WARN, @@ -138,69 +117,18 @@ def main(): ), ) - # Load custom classes - # Users can ONLY pass in: - # 1. python class instances - # if the thing that the user passed in is a python class, we need to exit with an error - # we'll use `inspect.isclass` to do that - # todo: test the h** out of this logic - - outboundqueue = load_class(kwargs["outboundqueue"]) # this is a mandatory param - kwargs["outboundqueue"] = outboundqueue - if inspect.isclass(outboundqueue): - # DO NOT instantiate class instance, fail with appropriate error instead. - msg = "outboundqueue should be a class instance." - logger.log(logging.ERROR, {"event": "naz.cli.main", "stage": "end", "error": msg}) + if not isinstance(client, naz.Client): + err = ValueError( + """`client` should be of type:: `naz.Client` You entered: {0}""".format( + type(client) + ) + ) + logger.log(logging.ERROR, {"event": "naz.cli.main", "stage": "end", "error": str(err)}) sys.exit(77) - sequence_generator = kwargs.get("sequence_generator") - if sequence_generator: - sequence_generator = load_class(sequence_generator) - # kwargs should contain the actual loaded class instances - kwargs["sequence_generator"] = sequence_generator - if inspect.isclass(sequence_generator): - msg = "sequence_generator should be a class instance." - logger.log(logging.ERROR, {"event": "naz.cli.main", "stage": "end", "error": msg}) - sys.exit(77) - - codec_class = kwargs.get("codec_class") - if codec_class: - codec_class = load_class(codec_class) - kwargs["codec_class"] = codec_class - if inspect.isclass(codec_class): - msg = "codec_class should be a class instance." - logger.log(logging.ERROR, {"event": "naz.cli.main", "stage": "end", "error": msg}) - sys.exit(77) - rateLimiter = kwargs.get("rateLimiter") - if rateLimiter: - rateLimiter = load_class(rateLimiter) - kwargs["rateLimiter"] = rateLimiter - if inspect.isclass(rateLimiter): - msg = "rateLimiter should be a class instance." - logger.log(logging.ERROR, {"event": "naz.cli.main", "stage": "end", "error": msg}) - sys.exit(77) - hook = kwargs.get("hook") - if hook: - hook = load_class(hook) - kwargs["hook"] = hook - if inspect.isclass(hook): - msg = "hook should be a class instance." - logger.log(logging.ERROR, {"event": "naz.cli.main", "stage": "end", "error": msg}) - sys.exit(77) - throttle_handler = kwargs.get("throttle_handler") - if throttle_handler: - throttle_handler = load_class(throttle_handler) - kwargs["throttle_handler"] = throttle_handler - if inspect.isclass(throttle_handler): - msg = "throttle_handler should be a class instance." - logger.log(logging.ERROR, {"event": "naz.cli.main", "stage": "end", "error": msg}) - sys.exit(77) - if dry_run: return - # call naz api - client = naz.Client(**kwargs) loop.run_until_complete( async_main(client=client, logger=logger, loop=loop, dry_run=dry_run) ) diff --git a/cli/utils/load.py b/cli/utils/load.py new file mode 100644 index 00000000..a4e44f50 --- /dev/null +++ b/cli/utils/load.py @@ -0,0 +1,47 @@ +import os +import sys +import importlib + +import naz + + +def load_class(dotted_path: str) -> naz.Client: + """ + taken from: https://github.com/coleifer/huey/blob/4138d454cc6fd4d252c9350dbd88d74dd3c67dcb/huey/utils.py#L44 + huey is released under MIT license a copy of which can be found at: https://github.com/coleifer/huey/blob/master/LICENSE + + The license is also included below: + + Copyright (c) 2017 Charles Leifer + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + """ + try: + path, klass = dotted_path.rsplit(".", 1) + mod = importlib.import_module(path) + attttr = getattr(mod, klass) + return attttr + except Exception: + cur_dir = os.getcwd() + if cur_dir not in sys.path: + sys.path.insert(0, cur_dir) + return load_class(dotted_path) + err_message = "Error importing {0}".format(dotted_path) + sys.stderr.write("\033[91m{0}\033[0m\n".format(err_message)) + raise diff --git a/documentation/sphinx-docs/introduction.rst b/documentation/sphinx-docs/introduction.rst index 55810fcc..758350b6 100644 --- a/documentation/sphinx-docs/introduction.rst +++ b/documentation/sphinx-docs/introduction.rst @@ -115,14 +115,14 @@ and a python file, `myfile.py` (in the current working directory) with the conte then run: -``naz-cli --app /tmp/my_app.json`` +``naz-cli --client /tmp/my_app.json`` NB: * (a) For more information about the naz config file, consult the `documentation here `_ * (b) More examples can be found `here `_ As an example, start the SMSC simulator(``docker-compose up``) then in another terminal run, - ``naz-cli --app examples/example_config.json`` + ``naz-cli --client examples/example_config.json`` 3 Features diff --git a/examples/example_config.json b/examples/example_config.json deleted file mode 100644 index 2e461598..00000000 --- a/examples/example_config.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "smsc_host": "127.0.0.1", - "smsc_port": 2775, - "system_id": "smppclient1", - "password": "password", - "outboundqueue": "examples.example_klasses.ExampleRedisQueueInstance", - "encoding": "gsm0338", - "sequence_generator": "examples.example_klasses.ExampleSeqGen", - "loglevel": "INFO", - "log_metadata": { - "environment": "staging", - "release": "canary" - }, - "codec_errors_level": "ignore", - "enquire_link_interval": 70.00, - "rateLimiter": "examples.example_klasses.ExampleRateLimiter" -} \ No newline at end of file diff --git a/examples/example_config.py b/examples/example_config.py new file mode 100644 index 00000000..707680c5 --- /dev/null +++ b/examples/example_config.py @@ -0,0 +1,20 @@ +import naz +from examples.example_klasses import ExampleRedisQueue, MySeqGen, MyRateLimiter + + +# run as: +# naz-cli --client examples.example_config.client +client = naz.Client( + smsc_host="127.0.0.1", + smsc_port=2775, + system_id="smppclient1", + password="password", + outboundqueue=ExampleRedisQueue(), + encoding="gsm0338", + sequence_generator=MySeqGen(), + loglevel="INFO", + log_metadata={"environment": "staging", "release": "canary"}, + codec_errors_level="ignore", + enquire_link_interval=70.00, + rateLimiter=MyRateLimiter(), +) diff --git a/examples/example_klasses.py b/examples/example_klasses.py index feac49e8..ada9f3bb 100644 --- a/examples/example_klasses.py +++ b/examples/example_klasses.py @@ -132,12 +132,8 @@ def blocking_dequeue(self): return dequed_item -ExampleSeqGen = MySeqGen() -ExampleRateLimiter = MyRateLimiter() -ExampleRedisQueueInstance = ExampleRedisQueue() - - if __name__ == "__main__": + my_queue = ExampleRedisQueue() loop = asyncio.get_event_loop() for i in range(0, 4): print("submit_sm round:", i) @@ -150,4 +146,4 @@ def blocking_dequeue(self): "destination_addr": "254722999999", "hook_metadata": '{"telco": "verizon", "customer_id": 123456}', } - loop.run_until_complete(ExampleRedisQueueInstance.enqueue(item_to_enqueue)) + loop.run_until_complete(my_queue.enqueue(item_to_enqueue)) diff --git a/tests/test_cli.py b/tests/test_cli.py index 8411dbdb..a29511ca 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -34,7 +34,7 @@ def add_argument(self, *args, **kwargs): def parse_args(self, args=None, namespace=None): naz_config_file = io.StringIO(json.dumps(self.naz_config)) - return argparse.Namespace(app=naz_config_file, dry_run=True) + return argparse.Namespace(client=naz_config_file, dry_run=True) class TestCli(TestCase): From af9c01e8a0c5a1b64c3945caa45d22a4d6c0c5b8 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 16:56:49 +0300 Subject: [PATCH 05/27] f --- cli/cli.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cli/cli.py b/cli/cli.py index ceb51a09..2fbafb42 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -1,6 +1,5 @@ import os import sys -import json import random import string import asyncio From 0529004a542328f4ae112a9bec1731df3eb77b38 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 17:03:00 +0300 Subject: [PATCH 06/27] f --- .travis.yml | 2 +- cli/cli.py | 2 +- documentation/config.md | 43 ++++++++++++---------- documentation/sphinx-docs/introduction.rst | 26 +++++++------ 4 files changed, 40 insertions(+), 33 deletions(-) diff --git a/.travis.yml b/.travis.yml index d99cab20..da50a543 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ script: # see: http://mypy.readthedocs.io/en/latest/common_issues.html#displaying-the-type-of-an-expression - mypy --show-column-numbers --ignore-missing-imports -p cli -p naz #--strict - naz-cli --version && naz-cli --help - - naz-cli --client examples/example_config.json --dry-run + - naz-cli --client examples.example_config.client --dry-run - coverage erase - export CI_ENVIRONMENT=Yes && coverage run --omit="*tests*,*examples/*,*.virtualenvs/*,*virtualenv/*,*.venv/*,*__init__*" -m unittest discover -v -s . && bash <(curl -s https://codecov.io/bash) - coverage report --show-missing --fail-under=84 diff --git a/cli/cli.py b/cli/cli.py index 2fbafb42..54b9e25c 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -66,7 +66,7 @@ def make_parser(): description="""naz is an async SMPP client. example usage: naz-cli \ - --client /path/to/my_app.json + --client dotted.path.to.naz.Client.instance """, ) parser.add_argument( diff --git a/documentation/config.md b/documentation/config.md index fc09b6c5..dc8bed03 100644 --- a/documentation/config.md +++ b/documentation/config.md @@ -1,5 +1,6 @@ ## 1. naz Config file (naz client) parameters -`naz-cli` accepts a json config file. The parameters that can be put in that file, what they mean and their default values(if any) are documented here. +`naz-cli` accepts a config file. The config file is a python file that has a `naz.Client` instance. +The parameters that can be put in that file, what they mean and their default values(if any) are documented here. Note that these are also the parameters that [`naz.Client`](https://github.com/komuw/naz/blob/master/naz/client.py) takes. The parameters are divided into two categories, @@ -69,25 +70,27 @@ connect_timeout | duration that `naz` will try to connect to SMSC before timing #### Example 1. An example config file is shown below. -`/tmp/my_config.json` -```bash -{ - "smsc_host": "127.0.0.1", - "smsc_port": 2775, - "system_id": "smppclient1", - "password": "password", - "outboundqueue": "dotted.path.to.Myqueue", - "encoding": "gsm0338", - "sequence_generator": "my.dotted.path.to.RedisSequencer", - "loglevel": "INFO", - "log_metadata": { - "environment": "production", - "release": "canary" - }, - "codec_errors_level": "ignore", - "enquire_link_interval": 30.0, - "rateLimiter": "dotted.path.to.CustomRateLimiter" -} +`/tmp/my_config.py` +```python +import naz +from examples.example_klasses import ExampleRedisQueue, MySeqGen, MyRateLimiter + +# run as: +# naz-cli --client examples.example_config.client +client = naz.Client( + smsc_host="127.0.0.1", + smsc_port=2775, + system_id="smppclient1", + password="password", + outboundqueue=ExampleRedisQueue(), + encoding="gsm0338", + sequence_generator=MySeqGen(), + loglevel="INFO", + log_metadata={"environment": "staging", "release": "canary"}, + codec_errors_level="ignore", + enquire_link_interval=70.00, + rateLimiter=MyRateLimiter(), +) ``` 2. An example `naz.Client` declaration diff --git a/documentation/sphinx-docs/introduction.rst b/documentation/sphinx-docs/introduction.rst index 758350b6..b0f73111 100644 --- a/documentation/sphinx-docs/introduction.rst +++ b/documentation/sphinx-docs/introduction.rst @@ -86,17 +86,21 @@ NB: ===================== ``naz`` also ships with a commandline interface app called ``naz-cli`` (it is also installed by default when you `pip install naz`). -create a json config file, eg; `/tmp/my_app.json` +create a python config file, eg; `/tmp/my_app.py` -.. code-block:: bash +.. code-block:: python + + import naz + from myfile import ExampleQueue + + client = naz.Client( + smsc_host="127.0.0.1", + smsc_port=2775, + system_id="smppclient1", + password="password", + outboundqueue=ExampleQueue() + ) - { - "smsc_host": "127.0.0.1", - "smsc_port": 2775, - "system_id": "smppclient1", - "password": "password", - "outboundqueue": "myfile.ExampleQueue" - } and a python file, `myfile.py` (in the current working directory) with the contents: @@ -115,14 +119,14 @@ and a python file, `myfile.py` (in the current working directory) with the conte then run: -``naz-cli --client /tmp/my_app.json`` +``naz-cli --client tmp.my_app.client`` NB: * (a) For more information about the naz config file, consult the `documentation here `_ * (b) More examples can be found `here `_ As an example, start the SMSC simulator(``docker-compose up``) then in another terminal run, - ``naz-cli --client examples/example_config.json`` + ``naz-cli --client examples.example_config.client`` 3 Features From 83c9928e67fa74f0ceeb81320a06d3afdbca8ed1 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 17:07:24 +0300 Subject: [PATCH 07/27] f --- README.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b7c0ec06..a3c74888 100644 --- a/README.md +++ b/README.md @@ -99,16 +99,19 @@ That docker-compose file also has a redis and rabbitMQ container if you would li #### 2. As a cli app naz also ships with a commandline interface app called `naz-cli`. -create a json config file, eg; -`/tmp/my_config.json` -``` -{ - "smsc_host": "127.0.0.1", - "smsc_port": 2775, - "system_id": "smppclient1", - "password": "password", - "outboundqueue": "myfile.ExampleQueue" -} +create a python config file, eg; +`/tmp/my_config.py` +```python +import naz +from myfile import ExampleQueue + +client = naz.Client( + smsc_host="127.0.0.1", + smsc_port=2775, + system_id="smppclient1", + password="password", + outboundqueue=ExampleQueue() +) ``` and a python file, `myfile.py` (in the current working directory) with the contents: @@ -127,7 +130,7 @@ class ExampleQueue(naz.q.BaseOutboundQueue): ``` then run: -`naz-cli --config /tmp/my_config.json` +`naz-cli --client tmp.my_config.client` ```shell Naz: the SMPP client. @@ -143,19 +146,19 @@ run: **NB:** (a) For more information about the `naz` config file, consult the [documentation here](https://github.com/komuw/naz/blob/master/documentation/config.md) -(b) More [examples can be found here](https://github.com/komuw/naz/tree/master/examples). As an example, start the SMSC simulator(`docker-compose up`) then in another terminal run, `naz-cli --config examples/example_config.json` +(b) More [examples can be found here](https://github.com/komuw/naz/tree/master/examples). As an example, start the SMSC simulator(`docker-compose up`) then in another terminal run, `naz-cli --client examples.example_config.client` To see help: `naz-cli --help` ```shell naz is an async SMPP client. -example usage: naz-cli --config /path/to/my_config.json +example usage: naz-cli --client path.to.my_config.client optional arguments: -h, --help show this help message and exit --version The currently installed naz version. - --config CONFIG The config file to use. eg: --config /path/to/my_config.json + --client CLIENT The config file to use. eg: --client path.to.my_config.client ``` From a06182c36bbd9766bff8d3a8d24567a8600e9fd7 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 18:37:42 +0300 Subject: [PATCH 08/27] f --- cli/cli.py | 2 +- cli/utils/load.py | 12 ++++++++---- tests/test_cli.py | 50 +++++++++++++++++++++++++---------------------- 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/cli/cli.py b/cli/cli.py index 54b9e25c..acaaf627 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -107,7 +107,7 @@ def main(): args = parser.parse_args() dry_run = args.dry_run client = args.client - client = load.load_class(client) + client = load.load_class(dotted_path=client, logger=logger) if dry_run: logger.log( logging.WARN, diff --git a/cli/utils/load.py b/cli/utils/load.py index a4e44f50..869068a9 100644 --- a/cli/utils/load.py +++ b/cli/utils/load.py @@ -1,11 +1,12 @@ import os import sys +import logging import importlib import naz -def load_class(dotted_path: str) -> naz.Client: +def load_class(dotted_path: str, logger: naz.logger.BaseLogger) -> naz.Client: """ taken from: https://github.com/coleifer/huey/blob/4138d454cc6fd4d252c9350dbd88d74dd3c67dcb/huey/utils.py#L44 huey is released under MIT license a copy of which can be found at: https://github.com/coleifer/huey/blob/master/LICENSE @@ -37,11 +38,14 @@ def load_class(dotted_path: str) -> naz.Client: mod = importlib.import_module(path) attttr = getattr(mod, klass) return attttr - except Exception: + except Exception as e: cur_dir = os.getcwd() if cur_dir not in sys.path: sys.path.insert(0, cur_dir) return load_class(dotted_path) err_message = "Error importing {0}".format(dotted_path) - sys.stderr.write("\033[91m{0}\033[0m\n".format(err_message)) - raise + logger.log( + logging.ERROR, + {"event": "naz.cli.main", "stage": "end", "state": err_message, "error": str(e)}, + ) + raise e diff --git a/tests/test_cli.py b/tests/test_cli.py index a29511ca..d229cbd6 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -11,6 +11,8 @@ import naz import docker +from examples.example_klasses import ExampleRedisQueue, MySeqGen, MyRateLimiter + def AsyncMock(*args, **kwargs): """ @@ -33,8 +35,25 @@ def add_argument(self, *args, **kwargs): pass def parse_args(self, args=None, namespace=None): - naz_config_file = io.StringIO(json.dumps(self.naz_config)) - return argparse.Namespace(client=naz_config_file, dry_run=True) + return argparse.Namespace(client=self.naz_config, dry_run=True) + + +NAZ_CLIENT = naz.Client( + smsc_host="127.0.0.1", + smsc_port=2775, + system_id="smppclient1", + password="password", + outboundqueue=ExampleRedisQueue(), + encoding="gsm0338", + sequence_generator=MySeqGen(), + loglevel="INFO", + log_metadata={"environment": "production", "release": "canary"}, + codec_errors_level="ignore", + enquire_link_interval=30.00, + rateLimiter=MyRateLimiter(), +) + +BAD_NAZ_CLIENT = MySeqGen() class TestCli(TestCase): @@ -64,21 +83,8 @@ def setUp(self): stdout=True, stderr=True, ) - - self.naz_config = { - "smsc_host": "127.0.0.1", - "smsc_port": 2775, - "system_id": "smppclient1", - "password": "password", - "outboundqueue": "examples.example_klasses.ExampleRedisQueueInstance", - "encoding": "gsm0338", - "sequence_generator": "examples.example_klasses.ExampleSeqGen", - "loglevel": "INFO", - "log_metadata": {"environment": "production", "release": "canary"}, - "codec_errors_level": "ignore", - "enquire_link_interval": 30.00, - "rateLimiter": "examples.example_klasses.ExampleRateLimiter", - } + self.naz_config = "tests.test_cli.NAZ_CLIENT" + self.bad_naz_config = "tests.test_cli.BAD_NAZ_CLIENT" def tearDown(self): if os.environ.get("CI_ENVIRONMENT"): @@ -98,18 +104,16 @@ def test_cli_success(self): def test_cli_failure(self): with self.assertRaises(SystemExit): - bad_config = copy.deepcopy(self.naz_config) - bad_config.pop("outboundqueue") with mock.patch("argparse.ArgumentParser") as mock_ArgumentParser: - mock_ArgumentParser.return_value = MockArgumentParser(naz_config=bad_config) + mock_ArgumentParser.return_value = MockArgumentParser( + naz_config=self.bad_naz_config + ) cli.cli.main() def test_load_class_error(self): with self.assertRaises(SystemExit): - bad_config = copy.deepcopy(self.naz_config) - bad_config.update({"outboundqueue": "BareClass"}) with mock.patch("argparse.ArgumentParser") as mock_ArgumentParser: - mock_ArgumentParser.return_value = MockArgumentParser(naz_config=bad_config) + mock_ArgumentParser.return_value = MockArgumentParser(naz_config="nonExistent.Path") cli.cli.main() From 161fc999fe3eda592afb3a6a0fd55308a80e38dc Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 18:40:54 +0300 Subject: [PATCH 09/27] f --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2296d200..8a22895e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ most recent version is listed first. - `naz` will now be able to detect when the connection to SMSC is disconnected and will attempt to re-connect & re-bind - bugfix; `asyncio.streams.StreamWriter.drain` should not be called concurrently by multiple coroutines - when shutting down, `naz` now tries to make sure that write buffers are properly flushed. +- replace naz json config file with a python file: https://github.com/komuw/naz/pull/123 ## **version:** v0.6.0-beta.1 - Bug fix: https://github.com/komuw/naz/pull/98 From 61528d57a11ba22652fb15a74e9675247960b46f Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 18:51:31 +0300 Subject: [PATCH 10/27] f --- naz/client.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/naz/client.py b/naz/client.py index e432de18..5e56bdbd 100644 --- a/naz/client.py +++ b/naz/client.py @@ -831,7 +831,8 @@ async def enquire_link(self, TESTING: bool = False) -> typing.Union[bytes, None] TESTING: indicates whether this method is been called while running tests. """ # sleep during startup so that `naz` can have had time to connect & bind - await asyncio.sleep(self.enquire_link_interval) + while self.current_session_state != SmppSessionState.BOUND_TRX: + await asyncio.sleep(self.connect_timeout / 10) smpp_command = SmppCommand.ENQUIRE_LINK while True: @@ -1514,6 +1515,10 @@ async def dequeue_messages( Parameters: TESTING: indicates whether this method is been called while running tests. """ + # sleep during startup so that `naz` can have had time to connect & bind + while self.current_session_state != SmppSessionState.BOUND_TRX: + await asyncio.sleep(self.connect_timeout / 10) + retry_count = 0 while True: self._log(logging.INFO, {"event": "naz.Client.dequeue_messages", "stage": "start"}) From 83485504461991fa405b33247ab41ce654a6d719 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 19:06:58 +0300 Subject: [PATCH 11/27] f --- cli/cli.py | 1 - cli/utils/load.py | 2 +- tests/test_cli.py | 3 --- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/cli/cli.py b/cli/cli.py index acaaf627..ba4212af 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -4,7 +4,6 @@ import string import asyncio import logging -import inspect import argparse import naz diff --git a/cli/utils/load.py b/cli/utils/load.py index 869068a9..6cfd9b7e 100644 --- a/cli/utils/load.py +++ b/cli/utils/load.py @@ -42,7 +42,7 @@ def load_class(dotted_path: str, logger: naz.logger.BaseLogger) -> naz.Client: cur_dir = os.getcwd() if cur_dir not in sys.path: sys.path.insert(0, cur_dir) - return load_class(dotted_path) + return load_class(dotted_path, logger) err_message = "Error importing {0}".format(dotted_path) logger.log( logging.ERROR, diff --git a/tests/test_cli.py b/tests/test_cli.py index d229cbd6..47730858 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,7 +1,4 @@ import os -import io -import copy -import json import signal import asyncio import argparse From f08ce5ccbcd53cada7fe2f9c92a6f378722fbb83 Mon Sep 17 00:00:00 2001 From: komuW Date: Fri, 31 May 2019 19:17:43 +0300 Subject: [PATCH 12/27] f --- tests/test_client.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/test_client.py b/tests/test_client.py index 8c3f6339..bb8ea42a 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -802,3 +802,19 @@ def test_issues_67(self): ) ) self.assertTrue(mock_naz_tranceiver_bind.mock.called) + + def test_issues_112(self): + """ + test to prove we have fixed: https://github.com/komuw/naz/issues/112 + + Run `Client.enquire_link`. Check if `StreamWriter.write` was called twice(one for `tranceiver_bind` and another for `enquire_link`) + If `StreamWriter.write` was called, it means that our `enquire_link` call didnt get a: + enquire_link cannot be sent to SMSC when the client session state is: OPEN error. + """ + with mock.patch("asyncio.streams.StreamWriter.write") as mock_naz_writer: + self._run(self.cli.connect()) + self._run(self.cli.tranceiver_bind()) + # self.cli.current_session_state = naz.SmppSessionState.BOUND_TRX + self._run(self.cli.enquire_link(TESTING=True)) + self.assertTrue(mock_naz_writer.called) + self.assertEqual(mock_naz_writer.call_count, 2) From e23ae8ade634965fa7726c22a0a7de3a3d7d6d4e Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 10:16:27 +0300 Subject: [PATCH 13/27] f --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a22895e..754b116c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ most recent version is listed first. - bugfix; `asyncio.streams.StreamWriter.drain` should not be called concurrently by multiple coroutines - when shutting down, `naz` now tries to make sure that write buffers are properly flushed. - replace naz json config file with a python file: https://github.com/komuw/naz/pull/123 +- bugfix: `naz` would attempt to send messages(`submit_sm`) out before it had even connected to SMSC: https://github.com/komuw/naz/pull/124 + ## **version:** v0.6.0-beta.1 - Bug fix: https://github.com/komuw/naz/pull/98 From 9023a99c23a5026f621938139861841eca61827c Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 10:21:41 +0300 Subject: [PATCH 14/27] f --- naz/client.py | 14 +++++++------- tests/test_client.py | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/naz/client.py b/naz/client.py index 5e56bdbd..69e71bf1 100644 --- a/naz/client.py +++ b/naz/client.py @@ -1669,7 +1669,7 @@ async def dequeue_messages( async def receive_data(self, TESTING: bool = False) -> typing.Union[bytes, None]: """ - In loop; read bytes from the network connected to SMSC and hand them over to the :func:`throparserttled `. + In loop; read bytes from the network connected to SMSC and hand them over to the :func:`throparserttled `. Parameters: TESTING: indicates whether this method is been called while running tests. @@ -1769,13 +1769,13 @@ async def receive_data(self, TESTING: bool = False) -> typing.Union[bytes, None] chunks.append(chunk) bytes_recd = bytes_recd + len(chunk) full_pdu_data = command_length_header_data + b"".join(chunks) - await self.parse_response_pdu(full_pdu_data) + await self._parse_response_pdu(full_pdu_data) self._log(logging.INFO, {"event": "naz.Client.receive_data", "stage": "end"}) if TESTING: # offer escape hatch for tests to come out of endless loop return full_pdu_data - async def parse_response_pdu(self, pdu: bytes) -> None: + async def _parse_response_pdu(self, pdu: bytes) -> None: """ Take the bytes that have been read from network and parse them into their corresponding PDU. The resulting PDU is then handed over to :func:`speficic_handlers ` @@ -1783,7 +1783,7 @@ async def parse_response_pdu(self, pdu: bytes) -> None: Parameters: pdu: PDU in bytes, that have been read from network """ - self._log(logging.DEBUG, {"event": "naz.Client.parse_response_pdu", "stage": "start"}) + self._log(logging.DEBUG, {"event": "naz.Client._parse_response_pdu", "stage": "start"}) header_data = pdu[:16] body_data = pdu[16:] @@ -1800,7 +1800,7 @@ async def parse_response_pdu(self, pdu: bytes) -> None: self._log( logging.ERROR, { - "event": "naz.Client.parse_response_pdu", + "event": "naz.Client._parse_response_pdu", "stage": "end", "log_id": "", "state": "command_id:{0} is unknown.".format(command_id), @@ -1818,7 +1818,7 @@ async def parse_response_pdu(self, pdu: bytes) -> None: self._log( logging.ERROR, { - "event": "naz.Client.parse_response_pdu", + "event": "naz.Client._parse_response_pdu", "stage": "start", "log_id": log_id, "state": "correlater get error", @@ -1837,7 +1837,7 @@ async def parse_response_pdu(self, pdu: bytes) -> None: self._log( logging.DEBUG, { - "event": "naz.Client.parse_response_pdu", + "event": "naz.Client._parse_response_pdu", "stage": "end", "smpp_command": smpp_command, "log_id": log_id, diff --git a/tests/test_client.py b/tests/test_client.py index bb8ea42a..aa1e6305 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -251,7 +251,7 @@ def test_parse_response_pdu(self): "naz.Client.speficic_handlers", new=AsyncMock() ) as mock_naz_speficic_handlers: self._run( - self.cli.parse_response_pdu( + self.cli._parse_response_pdu( pdu=b"\x00\x00\x00\x18\x80\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x06SMPPSim\x00" ) ) @@ -419,7 +419,7 @@ def test_throttling_smsc_response(self): def test_response_hook_called(self): with mock.patch("naz.hooks.SimpleHook.response", new=AsyncMock()) as mock_hook_response: self._run( - self.cli.parse_response_pdu( + self.cli._parse_response_pdu( pdu=b"\x00\x00\x00\x12\x80\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x030\x00" ) ) @@ -629,7 +629,7 @@ def test_correlater_get_called(self): ) as mock_correlater_get: mock_correlater_get.return_value = "log_id", "hook_metadata" self._run( - self.cli.parse_response_pdu( + self.cli._parse_response_pdu( pdu=b"\x00\x00\x00\x18\x80\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x06SMPPSim\x00" ) ) @@ -640,13 +640,13 @@ def test_logger_called(self): with mock.patch("naz.logger.SimpleLogger.log") as mock_logger_log: mock_logger_log.return_value = None self._run( - self.cli.parse_response_pdu( + self.cli._parse_response_pdu( pdu=b"\x00\x00\x00\x18\x80\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x06SMPPSim\x00" ) ) self.assertTrue(mock_logger_log.called) self.assertEqual( - mock_logger_log.call_args[0][1]["event"], "naz.Client.parse_response_pdu" + mock_logger_log.call_args[0][1]["event"], "naz.Client._parse_response_pdu" ) def test_parse_deliver_sm(self): @@ -661,7 +661,7 @@ def test_parse_deliver_sm(self): b"\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00" b"\x11id:123456 sub:SSS dlvrd:DDD blah blah" ) - self._run(self.cli.parse_response_pdu(pdu=deliver_sm_pdu)) + self._run(self.cli._parse_response_pdu(pdu=deliver_sm_pdu)) self.assertTrue(mock_naz_speficic_handlers.mock.called) self.assertEqual(mock_naz_speficic_handlers.mock.call_count, 1) @@ -718,7 +718,7 @@ def test_submit_sm_AND_deliver_sm_correlation(self): ">IIII", command_length, command_id, command_status, mock_sequence_number ) # SUBMIT_SM_RESP should have same sequence_number as SUBMIT_SM submit_sm_resp_full_pdu = header + body - self._run(self.cli.parse_response_pdu(pdu=submit_sm_resp_full_pdu)) + self._run(self.cli._parse_response_pdu(pdu=submit_sm_resp_full_pdu)) # assert message_id was stored self.assertTrue(self.cli.correlation_handler.store[submit_sm_resp_smsc_message_id]) @@ -745,7 +745,7 @@ def test_submit_sm_AND_deliver_sm_correlation(self): b"\x00\x00\x03\x00\x11id:1618Z-0102G-2333M-25FJF sub:SSS dlvrd:DDD blah blah" ) deliver_sm_pdu = deliver_sm_pdu + tag_n_len + value - self._run(self.cli.parse_response_pdu(pdu=deliver_sm_pdu)) + self._run(self.cli._parse_response_pdu(pdu=deliver_sm_pdu)) self.assertTrue(mock_hook_response.mock.called) self.assertEqual( From df881e93206c60120b1c08016766d5fe8a22972f Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 10:25:18 +0300 Subject: [PATCH 15/27] f --- naz/client.py | 22 +++++++++++----------- tests/test_client.py | 38 +++++++++++++++++++------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/naz/client.py b/naz/client.py index 69e71bf1..e97458db 100644 --- a/naz/client.py +++ b/naz/client.py @@ -1778,7 +1778,7 @@ async def receive_data(self, TESTING: bool = False) -> typing.Union[bytes, None] async def _parse_response_pdu(self, pdu: bytes) -> None: """ Take the bytes that have been read from network and parse them into their corresponding PDU. - The resulting PDU is then handed over to :func:`speficic_handlers ` + The resulting PDU is then handed over to :func:`command_handlers ` Parameters: pdu: PDU in bytes, that have been read from network @@ -1826,7 +1826,7 @@ async def _parse_response_pdu(self, pdu: bytes) -> None: }, ) - await self.speficic_handlers( + await self.command_handlers( body_data=body_data, smpp_command=smpp_command, command_status_value=command_status, @@ -1845,7 +1845,7 @@ async def _parse_response_pdu(self, pdu: bytes) -> None: }, ) - async def speficic_handlers( + async def command_handlers( self, body_data: bytes, smpp_command: str, @@ -1872,7 +1872,7 @@ async def speficic_handlers( self._log( logging.ERROR, { - "event": "naz.Client.speficic_handlers", + "event": "naz.Client.command_handlers", "stage": "start", "smpp_command": smpp_command, "log_id": log_id, @@ -1884,7 +1884,7 @@ async def speficic_handlers( self._log( logging.ERROR, { - "event": "naz.Client.speficic_handlers", + "event": "naz.Client.command_handlers", "stage": "start", "smpp_command": smpp_command, "log_id": log_id, @@ -1896,7 +1896,7 @@ async def speficic_handlers( self._log( logging.INFO, { - "event": "naz.Client.speficic_handlers", + "event": "naz.Client.command_handlers", "stage": "start", "smpp_command": smpp_command, "log_id": log_id, @@ -1915,7 +1915,7 @@ async def speficic_handlers( self._log( logging.ERROR, { - "event": "naz.Client.speficic_handlers", + "event": "naz.Client.command_handlers", "stage": "end", "error": str(e), "smpp_command": smpp_command, @@ -1966,7 +1966,7 @@ async def speficic_handlers( self._log( logging.ERROR, { - "event": "naz.Client.speficic_handlers", + "event": "naz.Client.command_handlers", "stage": "end", "smpp_command": smpp_command, "log_id": log_id, @@ -2039,7 +2039,7 @@ async def speficic_handlers( self._log( logging.ERROR, { - "event": "naz.Client.speficic_handlers", + "event": "naz.Client.command_handlers", "stage": "start", "log_id": log_id, "state": "correlater get error", @@ -2054,7 +2054,7 @@ async def speficic_handlers( self._log( logging.ERROR, { - "event": "naz.Client.speficic_handlers", + "event": "naz.Client.command_handlers", "stage": "end", "smpp_command": smpp_command, "log_id": log_id, @@ -2078,7 +2078,7 @@ async def speficic_handlers( self._log( logging.ERROR, { - "event": "naz.Client.speficic_handlers", + "event": "naz.Client.command_handlers", "stage": "end", "smpp_command": smpp_command, "log_id": log_id, diff --git a/tests/test_client.py b/tests/test_client.py index aa1e6305..a03de7e2 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -248,28 +248,28 @@ def test_submit_sm_sending(self): def test_parse_response_pdu(self): with mock.patch( - "naz.Client.speficic_handlers", new=AsyncMock() - ) as mock_naz_speficic_handlers: + "naz.Client.command_handlers", new=AsyncMock() + ) as mock_naz_command_handlers: self._run( self.cli._parse_response_pdu( pdu=b"\x00\x00\x00\x18\x80\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x06SMPPSim\x00" ) ) - self.assertTrue(mock_naz_speficic_handlers.mock.called) - self.assertEqual(mock_naz_speficic_handlers.mock.call_count, 1) + self.assertTrue(mock_naz_command_handlers.mock.called) + self.assertEqual(mock_naz_command_handlers.mock.call_count, 1) self.assertEqual( - mock_naz_speficic_handlers.mock.call_args[1]["smpp_command"], + mock_naz_command_handlers.mock.call_args[1]["smpp_command"], naz.SmppCommand.BIND_TRANSCEIVER_RESP, ) - def test_speficic_handlers(self): + def test_command_handlers(self): with mock.patch( "naz.Client.enquire_link_resp", new=AsyncMock() ) as mock_naz_enquire_link_resp: sequence_number = 3 self._run( - self.cli.speficic_handlers( + self.cli.command_handlers( body_data=b"body_data", smpp_command=naz.SmppCommand.ENQUIRE_LINK, command_status_value=0, @@ -284,11 +284,11 @@ def test_speficic_handlers(self): mock_naz_enquire_link_resp.mock.call_args[1]["sequence_number"], sequence_number ) - def test_speficic_handlers_unbind(self): + def test_command_handlers_unbind(self): with mock.patch("naz.Client.send_data", new=AsyncMock()) as mock_naz_send_data: sequence_number = 7 self._run( - self.cli.speficic_handlers( + self.cli.command_handlers( body_data=b"body_data", smpp_command=naz.SmppCommand.UNBIND, command_status_value=0, @@ -303,11 +303,11 @@ def test_speficic_handlers_unbind(self): mock_naz_send_data.mock.call_args[1]["smpp_command"], naz.SmppCommand.UNBIND_RESP ) - def test_speficic_handlers_deliver_sm(self): + def test_command_handlers_deliver_sm(self): with mock.patch("naz.q.SimpleOutboundQueue.enqueue", new=AsyncMock()) as mock_naz_enqueue: sequence_number = 7 self._run( - self.cli.speficic_handlers( + self.cli.command_handlers( body_data=b"body_data", smpp_command=naz.SmppCommand.DELIVER_SM, command_status_value=0, @@ -382,7 +382,7 @@ def test_okay_smsc_response(self): ) as mock_throttled: sequence_number = 7 self._run( - self.cli.speficic_handlers( + self.cli.command_handlers( body_data=b"body_data", smpp_command=naz.SmppCommand.DELIVER_SM, command_status_value=0, @@ -403,7 +403,7 @@ def test_throttling_smsc_response(self): ) as mock_throttled: sequence_number = 7 self._run( - self.cli.speficic_handlers( + self.cli.command_handlers( body_data=b"body_data", smpp_command=naz.SmppCommand.DELIVER_SM, command_status_value=0x00000058, @@ -486,7 +486,7 @@ def test_enquire_link_resp(self): with mock.patch("naz.q.SimpleOutboundQueue.enqueue", new=AsyncMock()) as mock_naz_enqueue: sequence_number = 7 self._run( - self.cli.speficic_handlers( + self.cli.command_handlers( body_data=b"body_data", smpp_command=naz.SmppCommand.ENQUIRE_LINK, command_status_value=0, @@ -651,8 +651,8 @@ def test_logger_called(self): def test_parse_deliver_sm(self): with mock.patch( - "naz.Client.speficic_handlers", new=AsyncMock() - ) as mock_naz_speficic_handlers: + "naz.Client.command_handlers", new=AsyncMock() + ) as mock_naz_command_handlers: # see: https://github.com/mozes/smpp.pdu deliver_sm_pdu = ( b"\x00\x00\x00M\x00\x00\x00\x05\x00\x00" @@ -663,10 +663,10 @@ def test_parse_deliver_sm(self): ) self._run(self.cli._parse_response_pdu(pdu=deliver_sm_pdu)) - self.assertTrue(mock_naz_speficic_handlers.mock.called) - self.assertEqual(mock_naz_speficic_handlers.mock.call_count, 1) + self.assertTrue(mock_naz_command_handlers.mock.called) + self.assertEqual(mock_naz_command_handlers.mock.call_count, 1) self.assertEqual( - mock_naz_speficic_handlers.mock.call_args[1]["smpp_command"], + mock_naz_command_handlers.mock.call_args[1]["smpp_command"], naz.SmppCommand.DELIVER_SM, ) From 1f1de3e33544a5c0eb0f7fe76bfbcd539700d27c Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 10:27:40 +0300 Subject: [PATCH 16/27] f --- cli/cli.py | 43 ------------------------------------------- 1 file changed, 43 deletions(-) diff --git a/cli/cli.py b/cli/cli.py index ba4212af..3d02ecb4 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -13,49 +13,6 @@ os.environ["PYTHONASYNCIODEBUG"] = "1" -def load_class(dotted_path): - """ - taken from: https://github.com/coleifer/huey/blob/4138d454cc6fd4d252c9350dbd88d74dd3c67dcb/huey/utils.py#L44 - huey is released under MIT license a copy of which can be found at: https://github.com/coleifer/huey/blob/master/LICENSE - - The license is also included below: - - Copyright (c) 2017 Charles Leifer - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - """ - try: - path, klass = dotted_path.rsplit(".", 1) - __import__(path) - mod = sys.modules[path] - attttr = getattr(mod, klass) - return attttr - except Exception: - cur_dir = os.getcwd() - if cur_dir not in sys.path: - sys.path.insert(0, cur_dir) - return load_class(dotted_path) - err_mesage = "Error importing {0}".format(dotted_path) - sys.stderr.write("\033[91m{0}\033[0m\n".format(err_mesage)) - raise - - def make_parser(): """ this is abstracted into its own method so that it is easier to test it. From 915841281b722cdb641d3f8713cd252fc8d10d7e Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 10:41:44 +0300 Subject: [PATCH 17/27] f --- tests/test_client.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_client.py b/tests/test_client.py index a03de7e2..d61298cd 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -5,7 +5,7 @@ import json import struct import asyncio -from unittest import TestCase, mock +from unittest import TestCase, mock, skip import naz import docker @@ -803,6 +803,7 @@ def test_issues_67(self): ) self.assertTrue(mock_naz_tranceiver_bind.mock.called) + @skip("TODO:fix this. It does not work.") def test_issues_112(self): """ test to prove we have fixed: https://github.com/komuw/naz/issues/112 From ac84fc290e50896ce122aadd9a99b70e88794442 Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 11:39:11 +0300 Subject: [PATCH 18/27] f --- tests/test_client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_client.py b/tests/test_client.py index d61298cd..f04559ba 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -545,6 +545,7 @@ def test_broken_broker(self): ) as mock_naz_dequeue, mock.patch("asyncio.streams.StreamWriter.write") as mock_naz_writer: mock_naz_dequeue.mock.side_effect = ValueError("This test broker has 99 Problems") self._run(self.cli.connect()) + self.cli.current_session_state = naz.SmppSessionState.BOUND_TRX res = self._run(self.cli.dequeue_messages(TESTING=True)) self.assertEqual(res, {"broker_error": "broker_error"}) self.assertFalse(mock_naz_writer.called) From eb8927f67329ec36ce7ae00f74745272efc1e85a Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 11:53:06 +0300 Subject: [PATCH 19/27] f --- documentation/sphinx-docs/naz-sentry.png | Bin 0 -> 287520 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentation/sphinx-docs/naz-sentry.png diff --git a/documentation/sphinx-docs/naz-sentry.png b/documentation/sphinx-docs/naz-sentry.png new file mode 100644 index 0000000000000000000000000000000000000000..57076d2c34204a777e9ce9f9d8ef52dd18b870df GIT binary patch literal 287520 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∾O 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�`jvU7DXNrA4eT>b!VtNYK&VCsxSN14C1& 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 Date: Sat, 1 Jun 2019 11:55:31 +0300 Subject: [PATCH 20/27] f --- tests/test_client.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/test_client.py b/tests/test_client.py index f04559ba..77201fd0 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -333,6 +333,7 @@ def test_unbind(self): def test_enquire_link(self): with mock.patch("naz.Client.send_data", new=AsyncMock()) as mock_naz_send_data: + self.cli.current_session_state = naz.SmppSessionState.BOUND_TRX self._run(self.cli.enquire_link(TESTING=True)) self.assertTrue(mock_naz_send_data.mock.called) self.assertEqual(mock_naz_send_data.mock.call_count, 1) @@ -451,7 +452,7 @@ def test_hook_called_with_metadata(self): self._run(self.cli.connect()) # hack to allow sending submit_sm even when state is wrong - self.cli.current_session_state = "BOUND_TRX" + self.cli.current_session_state = naz.SmppSessionState.BOUND_TRX self._run(self.cli.dequeue_messages(TESTING=True)) self.assertTrue(mock_hook_request.mock.called) @@ -614,7 +615,7 @@ def test_correlater_put_called(self): self._run(self.cli.connect()) # hack to allow sending submit_sm even when state is wrong - self.cli.current_session_state = "BOUND_TRX" + self.cli.current_session_state = naz.SmppSessionState.BOUND_TRX self._run(self.cli.dequeue_messages(TESTING=True)) self.assertTrue(mock_correlater_put.mock.called) @@ -697,7 +698,7 @@ def test_submit_sm_AND_deliver_sm_correlation(self): # 1. SEND SUBMIT_SM self._run(self.cli.connect()) # hack to allow sending submit_sm even when state is wrong - self.cli.current_session_state = "BOUND_TRX" + self.cli.current_session_state = naz.SmppSessionState.BOUND_TRX self._run(self.cli.dequeue_messages(TESTING=True)) self.assertTrue(self.cli.correlation_handler.store[mock_sequence_number]) self.assertEqual( From 2c9e6c183026301ea0bb86ff1403cf84ec9d7744 Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 12:02:13 +0300 Subject: [PATCH 21/27] f --- tests/test_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_client.py b/tests/test_client.py index 77201fd0..f3fd071a 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -629,7 +629,7 @@ def test_correlater_get_called(self): with mock.patch( "naz.correlater.SimpleCorrelater.get", new=AsyncMock() ) as mock_correlater_get: - mock_correlater_get.return_value = "log_id", "hook_metadata" + mock_correlater_get.mock.return_value = "log_id", "hook_metadata" self._run( self.cli._parse_response_pdu( pdu=b"\x00\x00\x00\x18\x80\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x06SMPPSim\x00" From 9249419d95275136b68c4f4ee8d0385780b07725 Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 12:08:57 +0300 Subject: [PATCH 22/27] f --- tests/test_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_client.py b/tests/test_client.py index f3fd071a..608b2fea 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -502,7 +502,7 @@ def test_enquire_link_resp(self): naz.SmppCommand.ENQUIRE_LINK_RESP, ) - def test__retry_after(self): + def test_retry_after(self): self.assertEqual(self.cli._retry_after(current_retries=-23) / 60, 1) self.assertEqual(self.cli._retry_after(current_retries=0) / 60, 1) self.assertEqual(self.cli._retry_after(current_retries=1) / 60, 2) From 2fb048d67d7db36108e10a898d21eb7e42771ef2 Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 12:26:05 +0300 Subject: [PATCH 23/27] f --- naz/client.py | 28 ++++++++++++++++++++++++++-- tests/test_client.py | 4 +++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/naz/client.py b/naz/client.py index e97458db..52b86ed7 100644 --- a/naz/client.py +++ b/naz/client.py @@ -832,7 +832,19 @@ async def enquire_link(self, TESTING: bool = False) -> typing.Union[bytes, None] """ # sleep during startup so that `naz` can have had time to connect & bind while self.current_session_state != SmppSessionState.BOUND_TRX: - await asyncio.sleep(self.connect_timeout / 10) + retry_after = self.connect_timeout / 10 + self._log( + logging.DEBUG, + { + "event": "naz.Client.enquire_link", + "stage": "start", + "current_session_state": self.current_session_state, + "state": "awaiting naz to change session state to `BOUND_TRX`. sleeping for {0}minutes".format( + retry_after / 60 + ), + }, + ) + await asyncio.sleep(retry_after) smpp_command = SmppCommand.ENQUIRE_LINK while True: @@ -1517,7 +1529,19 @@ async def dequeue_messages( """ # sleep during startup so that `naz` can have had time to connect & bind while self.current_session_state != SmppSessionState.BOUND_TRX: - await asyncio.sleep(self.connect_timeout / 10) + retry_after = self.connect_timeout / 10 + self._log( + logging.DEBUG, + { + "event": "naz.Client.dequeue_messages", + "stage": "start", + "current_session_state": self.current_session_state, + "state": "awaiting naz to change session state to `BOUND_TRX`. sleeping for {0}minutes".format( + retry_after / 60 + ), + }, + ) + await asyncio.sleep(retry_after) retry_count = 0 while True: diff --git a/tests/test_client.py b/tests/test_client.py index 608b2fea..26d24fe7 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -65,6 +65,7 @@ def setUp(self): system_id="smppclient1", password=os.getenv("password", "password"), outboundqueue=self.outboundqueue, + loglevel="DEBUG", # run tests with debug so as to debug what is going on ) self.docker_client = docker.from_env() @@ -354,6 +355,7 @@ def test_no_sending_if_throttler(self): password=os.getenv("password", "password"), outboundqueue=self.outboundqueue, throttle_handler=throttle_handler, + loglevel="DEBUG", ) log_id = "12345" @@ -367,12 +369,12 @@ def test_no_sending_if_throttler(self): "destination_addr": "254711999999", } self._run(cli.connect()) + cli.current_session_state = naz.SmppSessionState.BOUND_TRX # mock SMSC throttling naz for _ in range(0, int(sample_size) * 2): self._run(cli.throttle_handler.throttled()) self._run(cli.dequeue_messages(TESTING=True)) - self.assertFalse(mock_naz_dequeue.mock.called) def test_okay_smsc_response(self): From 946bf668ab457fb59bacb2e9de689dd89e52f42e Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 12:29:43 +0300 Subject: [PATCH 24/27] f --- tests/test_client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_client.py b/tests/test_client.py index 26d24fe7..6a0bbfd3 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -572,6 +572,7 @@ def test_session_state(self): } self._run(self.cli.connect()) + self.cli.current_session_state = naz.SmppSessionState.BOUND_TRX self._run(self.cli.dequeue_messages(TESTING=True)) self.assertFalse(mock_naz_writer.called) From 47538d57f976c5b0ef3bb53235c3ce8e508e1ba9 Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 12:43:59 +0300 Subject: [PATCH 25/27] f --- naz/client.py | 4 ++++ tests/test_client.py | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/naz/client.py b/naz/client.py index 52b86ed7..55e6d09f 100644 --- a/naz/client.py +++ b/naz/client.py @@ -845,6 +845,8 @@ async def enquire_link(self, TESTING: bool = False) -> typing.Union[bytes, None] }, ) await asyncio.sleep(retry_after) + if TESTING: + return None smpp_command = SmppCommand.ENQUIRE_LINK while True: @@ -1542,6 +1544,8 @@ async def dequeue_messages( }, ) await asyncio.sleep(retry_after) + if TESTING: + return None retry_count = 0 while True: diff --git a/tests/test_client.py b/tests/test_client.py index 6a0bbfd3..3ee5b8ed 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -582,7 +582,9 @@ def test_submit_with_session_state_closed(self): """ with mock.patch( "naz.q.SimpleOutboundQueue.dequeue", new=AsyncMock() - ) as mock_naz_dequeue, mock.patch("asyncio.streams.StreamWriter.write") as mock_naz_writer: + ) as mock_naz_dequeue, mock.patch( + "naz.client.asyncio.sleep", new=AsyncMock() + ) as mock_sleep: log_id = "12345" short_message = "hello smpp" mock_naz_dequeue.mock.return_value = { @@ -594,7 +596,8 @@ def test_submit_with_session_state_closed(self): "destination_addr": "254711999999", } self._run(self.cli.dequeue_messages(TESTING=True)) - self.assertFalse(mock_naz_writer.called) + self.assertTrue(mock_sleep.mock.called) + self.assertEqual(mock_sleep.mock.call_args[0][0], self.cli.connect_timeout / 10) def test_correlater_put_called(self): with mock.patch( From b243538c3d5b39734a288dc001341d8bedb1930e Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 12:52:40 +0300 Subject: [PATCH 26/27] f --- tests/test_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_client.py b/tests/test_client.py index 3ee5b8ed..613908bc 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -572,7 +572,7 @@ def test_session_state(self): } self._run(self.cli.connect()) - self.cli.current_session_state = naz.SmppSessionState.BOUND_TRX + self.cli.current_session_state = naz.SmppSessionState.OPEN self._run(self.cli.dequeue_messages(TESTING=True)) self.assertFalse(mock_naz_writer.called) From 929cf93bfaa348ca75529c51534726f151faa154 Mon Sep 17 00:00:00 2001 From: komuW Date: Sat, 1 Jun 2019 12:54:42 +0300 Subject: [PATCH 27/27] f --- naz/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/naz/client.py b/naz/client.py index 55e6d09f..10acf18c 100644 --- a/naz/client.py +++ b/naz/client.py @@ -1545,7 +1545,7 @@ async def dequeue_messages( ) await asyncio.sleep(retry_after) if TESTING: - return None + return {"state": "awaiting naz to change session state to `BOUND_TRX`"} retry_count = 0 while True: