Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
wantzel
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Brendan Abolivier
wantzel
Commits
ee4da876
Commit
ee4da876
authored
Feb 17, 2016
by
Mindiell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added tests. Need moar tests.
parent
c97afcd9
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
131 additions
and
2 deletions
+131
-2
.gitignore
.gitignore
+1
-1
README.md
README.md
+7
-0
create_mysql_tables.sql
create_mysql_tables.sql
+1
-1
tests/__init__.py
tests/__init__.py
+0
-0
tests/requirements_tests.txt
tests/requirements_tests.txt
+4
-0
tests/test_commands.py
tests/test_commands.py
+118
-0
No files found.
.gitignore
View file @
ee4da876
...
...
@@ -3,4 +3,4 @@ config.py
*.pyc
db.sqlite3
wantzel.log
ve/
ve
*
/
README.md
View file @
ee4da876
...
...
@@ -13,3 +13,10 @@ Installation
Clone the repository, then create a virtualenv with a python2.7 interpreter.
Install the requirements and launch it using wantzel.py.
Tests
~~~~~
Install the tests requirements in an other virtual environment, create a specific database for
tests, set tests/config.py as needed and launch tests using nosetests.
create_mysql_tables.sql
View file @
ee4da876
-- Run in a running instance of mysql
CREATE
TABLE
`presse`
(
CREATE
TABLE
IF
NOT
EXISTS
`presse`
(
`id`
int
(
10
)
unsigned
NOT
NULL
AUTO_INCREMENT
,
`url`
varchar
(
255
)
NOT
NULL
,
`cite`
tinyint
(
3
)
unsigned
NOT
NULL
,
...
...
tests/__init__.py
0 → 100644
View file @
ee4da876
tests/requirements_tests.txt
0 → 100644
View file @
ee4da876
-r ../requirements.txt
pylint
coverage
nose
tests/test_commands.py
0 → 100644
View file @
ee4da876
# encoding: utf-8
"""
Testing commands of wantzel
"""
from
mock
import
Mock
import
unittest
import
tests.config
from
messages
import
messages
from
wantzel
import
DEBUG
,
get_cursor
,
Utils
,
Wantzel
LOG_FILE
=
"wantzel_test.log"
LOG_LEVEL
=
DEBUG
def
fake_send_message
(
channel
,
message
):
global
global_channel
,
global_message
global_channel
=
channel
global_message
=
message
def
fake_topic
(
topic
):
global
global_topic
global_topic
=
topic
class
TestWantzel
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
wantzel
=
Wantzel
()
# Faking send_message on IRC
self
.
wantzel
.
send_message
=
Mock
()
# Faking topic change on IRC
self
.
wantzel
.
irc
=
Mock
()
self
.
wantzel
.
irc
.
client
=
Mock
()
self
.
wantzel
.
irc
.
client
.
topic
=
Mock
()
cursor
=
get_cursor
()
# Creating tables if necessary
with
open
(
"create_mysql_tables.sql"
)
as
file_handle
:
cursor
.
execute
(
file_handle
.
read
())
# clearing datas
cursor
.
execute
(
"DELETE FROM presse"
)
def
tearDown
(
self
):
# Destroying database
cursor
=
get_cursor
()
cursor
.
execute
(
"DELETE FROM presse"
)
def
test_command_help
(
self
):
self
.
wantzel
.
on_privmsg
(
"test!test.me"
,
"#test_channel"
,
"~help"
)
self
.
wantzel
.
send_message
.
assert_called_once_with
(
"#test_channel"
,
messages
[
"help"
])
def
test_command_help_command
(
self
):
commands
=
[
'help'
,
'rp'
,
'status'
,
'stats'
,
'kill'
,
'admin'
]
for
command
in
commands
:
self
.
wantzel
.
on_privmsg
(
"test!test.me"
,
"#test_channel"
,
"~help %s"
%
command
)
self
.
wantzel
.
send_message
.
assert_called_with
(
"#test_channel"
,
messages
[
"help_%s"
%
command
]
)
def
test_command_rp_with_no_url
(
self
):
self
.
wantzel
.
on_privmsg
(
"test!test.me"
,
"#test_channel"
,
"~rp nothing"
)
self
.
wantzel
.
send_message
.
assert_not_called
()
cursor
=
get_cursor
()
cursor
.
execute
(
"SELECT COUNT(*) FROM presse"
)
rows
=
cursor
.
fetchall
()
self
.
assertEqual
(
0
,
int
(
rows
[
0
][
0
]))
def
test_command_rp_new_article
(
self
):
self
.
wantzel
.
on_privmsg
(
"test!test.me"
,
"#test_channel"
,
"~rp http://test.me/article"
)
self
.
wantzel
.
send_message
.
assert_called_once_with
(
"#test_channel"
,
messages
[
"rp_new_article"
]
%
"test"
)
cursor
=
get_cursor
()
cursor
.
execute
(
"SELECT COUNT(*) FROM presse"
)
rows
=
cursor
.
fetchall
()
self
.
assertEqual
(
1
,
int
(
rows
[
0
][
0
]))
cursor
.
execute
(
"SELECT note FROM presse WHERE url='%s'"
%
"http://test.me/article"
)
rows
=
cursor
.
fetchall
()
self
.
assertEqual
(
1
,
int
(
rows
[
0
][
0
]))
def
test_command_rp_known_article
(
self
):
cursor
=
get_cursor
()
# Adding article for first time
self
.
wantzel
.
on_privmsg
(
"first_test!test.me"
,
"#test_channel"
,
"~rp http://test.me/article"
)
# Then, just add a point
self
.
wantzel
.
on_privmsg
(
"test!test.me"
,
"#test_channel"
,
"~rp http://test.me/article"
)
self
.
wantzel
.
send_message
.
assert_called_with
(
"#test_channel"
,
messages
[
"rp_known_article"
]
%
"test"
)
cursor
.
execute
(
"SELECT COUNT(*) FROM presse"
)
rows
=
cursor
.
fetchall
()
self
.
assertEqual
(
1
,
int
(
rows
[
0
][
0
]))
cursor
.
execute
(
"SELECT note FROM presse WHERE url='%s'"
%
"http://test.me/article"
)
rows
=
cursor
.
fetchall
()
self
.
assertEqual
(
2
,
int
(
rows
[
0
][
0
]))
def
test_command_rp_taken_article
(
self
):
cursor
=
get_cursor
()
# Adding article for first time
self
.
wantzel
.
on_privmsg
(
"first_test!test.me"
,
"#test_channel"
,
"~rp http://test.me/article"
)
self
.
wantzel
.
on_privmsg
(
"second_test!test.me"
,
"#test_channel"
,
"~rp http://test.me/article"
)
# Then, add a third point
self
.
wantzel
.
on_privmsg
(
"test!test.me"
,
"#test_channel"
,
"~rp http://test.me/article"
)
self
.
wantzel
.
send_message
.
assert_called_with
(
"#test_channel"
,
messages
[
"rp_taken_article"
]
%
"test"
)
self
.
wantzel
.
irc
.
client
.
topic
.
assert_called_once_with
(
"#lqdn-rp"
,
messages
[
"topic"
]
%
1
)
cursor
.
execute
(
"SELECT COUNT(*) FROM presse"
)
rows
=
cursor
.
fetchall
()
self
.
assertEqual
(
1
,
int
(
rows
[
0
][
0
]))
cursor
.
execute
(
"SELECT note FROM presse WHERE url='%s'"
%
"http://test.me/article"
)
rows
=
cursor
.
fetchall
()
self
.
assertEqual
(
3
,
int
(
rows
[
0
][
0
]))
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