diff --git a/config/aaa.py b/config/aaa.py index ffe974d4f6..01c645df46 100644 --- a/config/aaa.py +++ b/config/aaa.py @@ -404,8 +404,8 @@ def sourceip(ctx, src_ip): click.echo('Invalid ip address') return - v6_invalid_list = [ipaddress.IPv6Address(unicode('0::0')), ipaddress.IPv6Address(unicode('0::1'))] - net = ipaddress.ip_network(unicode(src_ip), strict=False) + v6_invalid_list = [ipaddress.IPv6Address('0::0'), ipaddress.IPv6Address('0::1')] + net = ipaddress.ip_network(src_ip, strict=False) if (net.version == 4): if src_ip == "0.0.0.0": click.echo('enter non-zero ip address') @@ -445,8 +445,8 @@ def nasip(ctx, nas_ip): click.echo('Invalid ip address') return - v6_invalid_list = [ipaddress.IPv6Address(unicode('0::0')), ipaddress.IPv6Address(unicode('0::1'))] - net = ipaddress.ip_network(unicode(nas_ip), strict=False) + v6_invalid_list = [ipaddress.IPv6Address('0::0'), ipaddress.IPv6Address('0::1')] + net = ipaddress.ip_network(nas_ip, strict=False) if (net.version == 4): if nas_ip == "0.0.0.0": click.echo('enter non-zero ip address') diff --git a/tests/radius_test.py b/tests/radius_test.py index 117e19bde8..6c31745011 100644 --- a/tests/radius_test.py +++ b/tests/radius_test.py @@ -1,11 +1,16 @@ import imp import os import sys +import mock +import jsonpatch from click.testing import CliRunner from utilities_common.db import Db +from mock import patch +from jsonpointer import JsonPointerException import config.main as config +import config.aaa as aaa import show.main as show test_path = os.path.dirname(os.path.abspath(__file__)) @@ -47,6 +52,16 @@ """ +show_radius_global_nasip_source_ip_output="""\ +RADIUS global auth_type pap (default) +RADIUS global retransmit 3 (default) +RADIUS global timeout 5 (default) +RADIUS global passkey (default) +RADIUS global nas_ip 1.1.1.1 +RADIUS global src_ip 2000::1 + +""" + config_radius_empty_output="""\ """ @@ -192,3 +207,43 @@ def test_config_radius_authtype(self, get_cmd_module): assert result.exit_code == 0 assert result.output == show_radius_default_output + def test_config_radius_nasip_sourceip(self, get_cmd_module): + (config, show) = get_cmd_module + runner = CliRunner() + db = Db() + db.cfgdb.delete_table("RADIUS") + db.cfgdb.delete_table("RADIUS_SERVER") + + result = runner.invoke(config.config.commands["radius"],\ + ["nasip", "1.1.1.1"]) + print(result.exit_code) + print(result.output) + assert result.exit_code == 0 + + result = runner.invoke(config.config.commands["radius"],\ + ["sourceip", "2000::1"]) + print(result.exit_code) + print(result.output) + assert result.exit_code == 0 + + result = runner.invoke(show.cli.commands["radius"], []) + print(result.exit_code) + print(result.output) + assert result.output == show_radius_default_output + + db.cfgdb.mod_entry("RADIUS", "global", \ + {'auth_type' : 'pap (default)', \ + 'retransmit': '3 (default)', \ + 'timeout' : '5 (default)', \ + 'passkey' : ' (default)', \ + 'nas_ip' : '1.1.1.1', \ + 'src_ip' : '2000::1', \ + } \ + ) + + result = runner.invoke(show.cli.commands["radius"], [], obj=db) + print(result.exit_code) + print(result.output) + assert result.exit_code == 0 + assert result.output == show_radius_global_nasip_source_ip_output +