Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Jelle van der Waa
Archweb
Commits
e3b419bc
Commit
e3b419bc
authored
Mar 06, 2020
by
Jelle van der Waa
🚧
Browse files
planet: add tests for updating planet
parent
6c796fce
Changes
1
Hide whitespace changes
Inline
Side-by-side
planet/tests/test_command.py
0 → 100644
View file @
e3b419bc
import
time
from
unittest
import
mock
from
django.test
import
TestCase
from
planet.models
import
Feed
,
FeedItem
from
planet.management.commands.update_planet
import
Command
class
Result
(
dict
):
status
=
200
entries
=
[]
def
get
(
self
,
value
):
return
getattr
(
self
,
value
)
class
Entry
(
dict
):
title
=
'title'
description
=
'lorem ipsum'
author
=
'John Doe'
published_parsed
=
time
.
localtime
(
time
.
time
())
link
=
'https://archlinux.org'
updated_parsed
=
None
def
get
(
self
,
value
):
return
getattr
(
self
,
value
)
class
UpdatePlanetTest
(
TestCase
):
def
setUp
(
self
):
self
.
command
=
Command
()
self
.
feed
=
Feed
(
title
=
'test'
,
website
=
'http://archlinux.org'
,
website_rss
=
'http://archlinux.org/feed.rss'
)
# Test when feedparser receives an exception and returns no status
@
mock
.
patch
(
'feedparser.parse'
)
def
test_parse_feed_wrong
(
self
,
parse
):
parse
.
return_value
=
{}
self
.
command
.
parse_feed
(
self
.
feed
)
assert
FeedItem
.
objects
.
count
()
==
0
@
mock
.
patch
(
'feedparser.parse'
)
def
test_parse_feed_304
(
self
,
parse
):
parse
.
return_value
=
{
'status'
:
304
}
self
.
command
.
parse_feed
(
self
.
feed
)
assert
FeedItem
.
objects
.
count
()
==
0
@
mock
.
patch
(
'feedparser.parse'
)
def
test_parse_feed_unknown
(
self
,
parse
):
parse
.
return_value
=
{
'status'
:
201
}
self
.
command
.
parse_feed
(
self
.
feed
)
assert
FeedItem
.
objects
.
count
()
==
0
@
mock
.
patch
(
'feedparser.parse'
)
def
test_parse_entries_empty
(
self
,
parse
):
parse
.
return_value
=
Result
()
self
.
command
.
parse_feed
(
self
.
feed
)
assert
FeedItem
.
objects
.
count
()
==
0
@
mock
.
patch
(
'feedparser.parse'
)
def
test_parse_entries_not_published
(
self
,
parse
):
value
=
Result
()
entry
=
Entry
()
entry
.
published_parsed
=
None
value
.
entries
=
[
entry
]
parse
.
return_value
=
value
self
.
command
.
parse_feed
(
self
.
feed
)
assert
FeedItem
.
objects
.
count
()
==
0
@
mock
.
patch
(
'feedparser.parse'
)
def
test_parse_entries
(
self
,
parse
):
value
=
Result
()
value
.
entries
=
[
Entry
()]
parse
.
return_value
=
value
self
.
command
.
parse_feed
(
self
.
feed
)
assert
FeedItem
.
objects
.
count
()
==
1
@
mock
.
patch
(
'feedparser.parse'
)
def
test_parse_entries_atom
(
self
,
parse
):
value
=
Result
()
entry
=
Entry
()
entry
.
published_parsed
=
None
entry
.
updated_parsed
=
time
.
localtime
(
time
.
time
())
value
.
entries
=
[
entry
]
parse
.
return_value
=
value
self
.
command
.
parse_feed
(
self
.
feed
)
assert
FeedItem
.
objects
.
count
()
==
1
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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