All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH nft v1] tests: json_echo: fix python3
@ 2019-05-24 18:44 Shekhar Sharma
  2019-05-27 15:54 ` Phil Sutter
  0 siblings, 1 reply; 3+ messages in thread
From: Shekhar Sharma @ 2019-05-24 18:44 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Shekhar Sharma


This patch converts the 'run-test.py' file to run on both python2 and python3.

Signed-off-by: Shekhar Sharma <shekhar250198@gmail.com>
---
 tests/json_echo/run-test.py | 45 +++++++++++++++++++------------------
 1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/tests/json_echo/run-test.py b/tests/json_echo/run-test.py
index 0132b139..f5c81b7d 100755
--- a/tests/json_echo/run-test.py
+++ b/tests/json_echo/run-test.py
@@ -1,5 +1,7 @@
 #!/usr/bin/python2
 
+from nftables import Nftables
+from __future__ import print_function
 import sys
 import os
 import json
@@ -7,14 +9,13 @@ import json
 TESTS_PATH = os.path.dirname(os.path.abspath(__file__))
 sys.path.insert(0, os.path.join(TESTS_PATH, '../../py/'))
 
-from nftables import Nftables
 
 # Change working directory to repository root
 os.chdir(TESTS_PATH + "/../..")
 
 if not os.path.exists('src/.libs/libnftables.so'):
-    print "The nftables library does not exist. " \
-          "You need to build the project."
+    print("The nftables library does not exist. " \
+          "You need to build the project.")
     sys.exit(1)
 
 nftables = Nftables(sofile = 'src/.libs/libnftables.so')
@@ -79,26 +80,26 @@ add_quota = { "add": {
 # helper functions
 
 def exit_err(msg):
-    print "Error: %s" % msg
+    print("Error: {}".format(msg))
     sys.exit(1)
 
 def exit_dump(e, obj):
-    print "FAIL: %s" % e
-    print "Output was:"
+    print("FAIL: {}".format(e))
+    print("Output was:")
     json.dumps(out, sort_keys = True, indent = 4, separators = (',', ': '))
     sys.exit(1)
 
 def do_flush():
     rc, out, err = nftables.json_cmd({ "nftables": [flush_ruleset] })
     if not rc is 0:
-        exit_err("flush ruleset failed: %s" % err)
+        exit_err("flush ruleset failed: {}".format(err))
 
 def do_command(cmd):
     if not type(cmd) is list:
         cmd = [cmd]
     rc, out, err = nftables.json_cmd({ "nftables": cmd })
     if not rc is 0:
-        exit_err("command failed: %s" % err)
+        exit_err("command failed: {}".format(err))
     return out
 
 def do_list_ruleset():
@@ -123,7 +124,7 @@ def get_handle(output, search):
             if not k in data:
                 continue
             found = True
-            for key in search[k].keys():
+            for key in list(search[k].keys()):
                 if key == "handle":
                     continue
                 if not key in data[k] or search[k][key] != data[k][key]:
@@ -140,7 +141,7 @@ def get_handle(output, search):
 
 do_flush()
 
-print "Adding table t"
+print("Adding table t")
 out = do_command(add_table)
 handle = get_handle(out, add_table["add"])
 
@@ -152,7 +153,7 @@ if handle != handle_cmp:
 
 add_table["add"]["table"]["handle"] = handle
 
-print "Adding chain c"
+print("Adding chain c")
 out = do_command(add_chain)
 handle = get_handle(out, add_chain["add"])
 
@@ -164,7 +165,7 @@ if handle != handle_cmp:
 
 add_chain["add"]["chain"]["handle"] = handle
 
-print "Adding set s"
+print("Adding set s")
 out = do_command(add_set)
 handle = get_handle(out, add_set["add"])
 
@@ -176,7 +177,7 @@ if handle != handle_cmp:
 
 add_set["add"]["set"]["handle"] = handle
 
-print "Adding rule"
+print("Adding rule")
 out = do_command(add_rule)
 handle = get_handle(out, add_rule["add"])
 
@@ -188,7 +189,7 @@ if handle != handle_cmp:
 
 add_rule["add"]["rule"]["handle"] = handle
 
-print "Adding counter"
+print("Adding counter")
 out = do_command(add_counter)
 handle = get_handle(out, add_counter["add"])
 
@@ -200,7 +201,7 @@ if handle != handle_cmp:
 
 add_counter["add"]["counter"]["handle"] = handle
 
-print "Adding quota"
+print("Adding quota")
 out = do_command(add_quota)
 handle = get_handle(out, add_quota["add"])
 
@@ -222,37 +223,37 @@ add_set["add"]["set"]["name"] = "s2"
 add_counter["add"]["counter"]["name"] = "c2"
 add_quota["add"]["quota"]["name"] = "q2"
 
-print "Adding table t2"
+print("Adding table t2")
 out = do_command(add_table)
 handle = get_handle(out, add_table["add"])
 if handle == add_table["add"]["table"]["handle"]:
    exit_err("handle not changed in re-added table!")
 
-print "Adding chain c2"
+print("Adding chain c2")
 out = do_command(add_chain)
 handle = get_handle(out, add_chain["add"])
 if handle == add_chain["add"]["chain"]["handle"]:
    exit_err("handle not changed in re-added chain!")
 
-print "Adding set s2"
+print("Adding set s2")
 out = do_command(add_set)
 handle = get_handle(out, add_set["add"])
 if handle == add_set["add"]["set"]["handle"]:
    exit_err("handle not changed in re-added set!")
 
-print "Adding rule again"
+print("Adding rule again")
 out = do_command(add_rule)
 handle = get_handle(out, add_rule["add"])
 if handle == add_rule["add"]["rule"]["handle"]:
    exit_err("handle not changed in re-added rule!")
 
-print "Adding counter c2"
+print("Adding counter c2")
 out = do_command(add_counter)
 handle = get_handle(out, add_counter["add"])
 if handle == add_counter["add"]["counter"]["handle"]:
    exit_err("handle not changed in re-added counter!")
 
-print "Adding quota q2"
+print("Adding quota q2")
 out = do_command(add_quota)
 handle = get_handle(out, add_quota["add"])
 if handle == add_quota["add"]["quota"]["handle"]:
@@ -269,7 +270,7 @@ add_quota["add"]["quota"]["name"] = "q"
 
 do_flush()
 
-print "doing multi add"
+print("doing multi add")
 # XXX: Add table separately, otherwise this triggers cache bug
 out = do_command(add_table)
 thandle = get_handle(out, add_table["add"])
-- 
2.21.0.windows.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH nft v1] tests: json_echo: fix python3
  2019-05-24 18:44 [PATCH nft v1] tests: json_echo: fix python3 Shekhar Sharma
@ 2019-05-27 15:54 ` Phil Sutter
  2019-05-27 21:53   ` shekhar sharma
  0 siblings, 1 reply; 3+ messages in thread
From: Phil Sutter @ 2019-05-27 15:54 UTC (permalink / raw)
  To: Shekhar Sharma; +Cc: netfilter-devel

Hi,

On Sat, May 25, 2019 at 12:14:09AM +0530, Shekhar Sharma wrote:
> This patch converts the 'run-test.py' file to run on both python2 and python3.
> 
> Signed-off-by: Shekhar Sharma <shekhar250198@gmail.com>
> ---
>  tests/json_echo/run-test.py | 45 +++++++++++++++++++------------------
>  1 file changed, 23 insertions(+), 22 deletions(-)
> 
> diff --git a/tests/json_echo/run-test.py b/tests/json_echo/run-test.py
> index 0132b139..f5c81b7d 100755
> --- a/tests/json_echo/run-test.py
> +++ b/tests/json_echo/run-test.py
> @@ -1,5 +1,7 @@
>  #!/usr/bin/python2

If the script now runs with either python 2 or 3, maybe change the
shebang to just '/usr/bin/python'?

> +from nftables import Nftables
> +from __future__ import print_function
>  import sys
>  import os
>  import json
> @@ -7,14 +9,13 @@ import json
>  TESTS_PATH = os.path.dirname(os.path.abspath(__file__))
>  sys.path.insert(0, os.path.join(TESTS_PATH, '../../py/'))
>  
> -from nftables import Nftables

Are you aware that the import was put here deliberately after the call
to sys.path.insert()? Why did you decide to move the import call?

>  # Change working directory to repository root
>  os.chdir(TESTS_PATH + "/../..")
>  
>  if not os.path.exists('src/.libs/libnftables.so'):
> -    print "The nftables library does not exist. " \
> -          "You need to build the project."
> +    print("The nftables library does not exist. " \
> +          "You need to build the project.")
>      sys.exit(1)

Drop the backslash here?

Cheers, Phil

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH nft v1] tests: json_echo: fix python3
  2019-05-27 15:54 ` Phil Sutter
@ 2019-05-27 21:53   ` shekhar sharma
  0 siblings, 0 replies; 3+ messages in thread
From: shekhar sharma @ 2019-05-27 21:53 UTC (permalink / raw)
  To: Phil Sutter, Shekhar Sharma, netfilter-devel

Hi,

On Mon, May 27, 2019 at 9:24 PM Phil Sutter <phil@nwl.cc> wrote:
>
> Hi,
>
> On Sat, May 25, 2019 at 12:14:09AM +0530, Shekhar Sharma wrote:
> > This patch converts the 'run-test.py' file to run on both python2 and python3.
> >
> > Signed-off-by: Shekhar Sharma <shekhar250198@gmail.com>
> > ---
> >  tests/json_echo/run-test.py | 45 +++++++++++++++++++------------------
> >  1 file changed, 23 insertions(+), 22 deletions(-)
> >
> > diff --git a/tests/json_echo/run-test.py b/tests/json_echo/run-test.py
> > index 0132b139..f5c81b7d 100755
> > --- a/tests/json_echo/run-test.py
> > +++ b/tests/json_echo/run-test.py
> > @@ -1,5 +1,7 @@
> >  #!/usr/bin/python2
>
> If the script now runs with either python 2 or 3, maybe change the
> shebang to just '/usr/bin/python'?
>

Yes, will change it to 'usr/bin/python' in the next patch.

> > +from nftables import Nftables
> > +from __future__ import print_function
> >  import sys
> >  import os
> >  import json
> > @@ -7,14 +9,13 @@ import json
> >  TESTS_PATH = os.path.dirname(os.path.abspath(__file__))
> >  sys.path.insert(0, os.path.join(TESTS_PATH, '../../py/'))
> >
> > -from nftables import Nftables
>
> Are you aware that the import was put here deliberately after the call
> to sys.path.insert()? Why did you decide to move the import call?
>
I was not aware of that. I just thought that every 'from __ import __
' statement
should be written before 'import __' statements :-) .
Will change it.

> >  # Change working directory to repository root
> >  os.chdir(TESTS_PATH + "/../..")
> >
> >  if not os.path.exists('src/.libs/libnftables.so'):
> > -    print "The nftables library does not exist. " \
> > -          "You need to build the project."
> > +    print("The nftables library does not exist. " \
> > +          "You need to build the project.")
> >      sys.exit(1)
>
> Drop the backslash here?
>

Yes, will do that.

> Cheers, Phil

Will do the necessary changes.
Thanks!

Shekhar

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-05-27 21:53 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-24 18:44 [PATCH nft v1] tests: json_echo: fix python3 Shekhar Sharma
2019-05-27 15:54 ` Phil Sutter
2019-05-27 21:53   ` shekhar sharma

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.