Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
routersploit
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
czos-dpend
routersploit
Commits
77851112
Commit
77851112
authored
Jul 02, 2016
by
fwkz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding command_unsetg unittests.
parent
75ca3425
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
4 deletions
+22
-4
test_interpreter.py
routersploit/test/test_interpreter.py
+22
-4
No files found.
routersploit/test/test_interpreter.py
View file @
77851112
...
@@ -6,8 +6,8 @@ try:
...
@@ -6,8 +6,8 @@ try:
except
ImportError
:
except
ImportError
:
import
mock
import
mock
from
routersploit.exploits
import
Exploit
,
Option
from
routersploit.exploits
import
Exploit
,
Option
,
GLOBAL_OPTS
from
routersploit.interpreter
import
RoutersploitInterpreter
,
GLOBAL_OPTS
from
routersploit.interpreter
import
RoutersploitInterpreter
from
routersploit.test
import
RoutersploitTestCase
from
routersploit.test
import
RoutersploitTestCase
...
@@ -24,6 +24,7 @@ class RoutersploitInterpreterTest(RoutersploitTestCase):
...
@@ -24,6 +24,7 @@ class RoutersploitInterpreterTest(RoutersploitTestCase):
self
.
interpreter
.
current_module
=
mock
.
MagicMock
()
self
.
interpreter
.
current_module
=
mock
.
MagicMock
()
self
.
raw_prompt_default
=
"
\001\033
[4m
\002
rsf
\001\033
[0m
\002
> "
self
.
raw_prompt_default
=
"
\001\033
[4m
\002
rsf
\001\033
[0m
\002
> "
self
.
module_prompt_default
=
lambda
x
:
"
\001\033
[4m
\002
rsf
\001\033
[0m
\002
(
\001\033
[91m
\002
{}
\001\033
[0m
\002
) > "
.
format
(
x
)
self
.
module_prompt_default
=
lambda
x
:
"
\001\033
[4m
\002
rsf
\001\033
[0m
\002
(
\001\033
[91m
\002
{}
\001\033
[0m
\002
) > "
.
format
(
x
)
GLOBAL_OPTS
.
clear
()
def
prepare_prompt_env_variables
(
self
,
raw_prompt
=
None
,
module_prompt
=
None
):
def
prepare_prompt_env_variables
(
self
,
raw_prompt
=
None
,
module_prompt
=
None
):
if
raw_prompt
:
if
raw_prompt
:
...
@@ -107,7 +108,8 @@ class RoutersploitInterpreterTest(RoutersploitTestCase):
...
@@ -107,7 +108,8 @@ class RoutersploitInterpreterTest(RoutersploitTestCase):
[
mock
.
call
({
'rhost'
:
new_rhost_value
}),
mock
.
call
({
'port'
:
new_port_value
})]
[
mock
.
call
({
'rhost'
:
new_rhost_value
}),
mock
.
call
({
'port'
:
new_port_value
})]
)
)
def
test_command_setg
(
self
):
@mock.patch
(
'routersploit.utils.print_success'
)
def
test_command_setg
(
self
,
mock_print_success
):
target
,
new_target_value
=
'target_value'
,
"new_target_value"
target
,
new_target_value
=
'target_value'
,
"new_target_value"
self
.
interpreter
.
current_module
.
options
=
[
'target'
,
'port'
]
self
.
interpreter
.
current_module
.
options
=
[
'target'
,
'port'
]
self
.
interpreter
.
current_module
.
target
=
target
self
.
interpreter
.
current_module
.
target
=
target
...
@@ -117,6 +119,23 @@ class RoutersploitInterpreterTest(RoutersploitTestCase):
...
@@ -117,6 +119,23 @@ class RoutersploitInterpreterTest(RoutersploitTestCase):
self
.
assertEqual
(
self
.
interpreter
.
current_module
.
target
,
new_target_value
)
self
.
assertEqual
(
self
.
interpreter
.
current_module
.
target
,
new_target_value
)
self
.
interpreter
.
current_module
=
TestExploitFoo
()
self
.
interpreter
.
current_module
=
TestExploitFoo
()
self
.
assertEqual
(
self
.
interpreter
.
current_module
.
target
,
new_target_value
)
self
.
assertEqual
(
self
.
interpreter
.
current_module
.
target
,
new_target_value
)
mock_print_success
.
assert_called_once_with
({
'target'
:
'{}'
.
format
(
new_target_value
)})
@mock.patch
(
'routersploit.utils.print_success'
)
def
test_command_unsetg
(
self
,
mock_print_success
):
GLOBAL_OPTS
[
'foo'
]
=
'bar'
self
.
interpreter
.
command_unsetg
(
'foo'
)
self
.
assertNotIn
(
'foo'
,
GLOBAL_OPTS
.
keys
())
mock_print_success
.
assert_called_once_with
({
'foo'
:
''
})
@mock.patch
(
'routersploit.utils.print_error'
)
def
test_command_unsetg_unknown_option
(
self
,
mock_print_error
):
unknown_option
=
"unknown"
GLOBAL_OPTS
[
'foo'
]
=
'bar'
self
.
interpreter
.
command_unsetg
(
'{} doesnt_matter_value'
.
format
(
unknown_option
))
mock_print_error
.
assert_called_once_with
(
"You can't unset global option '{}'.
\n
"
"Available global options: ['foo']"
.
format
(
unknown_option
))
def
test_command_run
(
self
):
def
test_command_run
(
self
):
with
mock
.
patch
.
object
(
self
.
interpreter
.
current_module
,
'run'
)
as
mock_run
:
with
mock
.
patch
.
object
(
self
.
interpreter
.
current_module
,
'run'
)
as
mock_run
:
...
@@ -231,7 +250,6 @@ class RoutersploitInterpreterTest(RoutersploitTestCase):
...
@@ -231,7 +250,6 @@ class RoutersploitInterpreterTest(RoutersploitTestCase):
self
.
assertEqual
(
self
.
module_prompt_default
(
'UnnamedModule'
),
self
.
interpreter
.
prompt
)
self
.
assertEqual
(
self
.
module_prompt_default
(
'UnnamedModule'
),
self
.
interpreter
.
prompt
)
def
test_suggested_commands_with_loaded_module_and_no_global_value_set
(
self
):
def
test_suggested_commands_with_loaded_module_and_no_global_value_set
(
self
):
GLOBAL_OPTS
.
clear
()
self
.
assertEqual
(
self
.
assertEqual
(
list
(
self
.
interpreter
.
suggested_commands
()),
list
(
self
.
interpreter
.
suggested_commands
()),
[
'run'
,
'back'
,
'set '
,
'setg '
,
'show '
,
'check'
,
'exec '
,
'help'
,
'exit'
]
# Extra space at the end because of following param
[
'run'
,
'back'
,
'set '
,
'setg '
,
'show '
,
'check'
,
'exec '
,
'help'
,
'exit'
]
# Extra space at the end because of following param
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment