Added a foaf-multiple.ini, another.foaf4 and accompanying test in test_foaf.py
Removed unnecessary returns in foaf2config()
This commit is contained in:
parent
7b13eece4d
commit
a166531855
@ -1,17 +1,18 @@
|
|||||||
from ConfigParser import ConfigParser
|
from ConfigParser import ConfigParser
|
||||||
|
|
||||||
# input = foaf, output = ConfigParser
|
# input = foaf, output = ConfigParser
|
||||||
def foaf2config(rdf, config=None):
|
def foaf2config(rdf, config):
|
||||||
|
|
||||||
if not config or not config.sections():
|
if not config or not config.sections():
|
||||||
config = ConfigParser()
|
return
|
||||||
|
|
||||||
|
# there should be only be 1 section
|
||||||
section = config.sections().pop()
|
section = config.sections().pop()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from RDF import Model, NS, Parser, Statement
|
from RDF import Model, NS, Parser, Statement
|
||||||
except:
|
except:
|
||||||
return config
|
return
|
||||||
|
|
||||||
if hasattr(rdf, 'read'):
|
if hasattr(rdf, 'read'):
|
||||||
rdf = rdf.read()
|
rdf = rdf.read()
|
||||||
@ -84,7 +85,7 @@ def foaf2config(rdf, config=None):
|
|||||||
config.add_section(feed)
|
config.add_section(feed)
|
||||||
config.set(feed, 'name', "%s (%s)" % (title, servicetitle))
|
config.set(feed, 'name', "%s (%s)" % (title, servicetitle))
|
||||||
|
|
||||||
return config
|
return
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import sys, urllib
|
import sys, urllib
|
||||||
|
38
tests/data/config/another.foaf
Normal file
38
tests/data/config/another.foaf
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<rdf:RDF
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:rss="http://purl.org/rss/1.0/"
|
||||||
|
xmlns:foaf="http://xmlns.com/foaf/0.1/">
|
||||||
|
<foaf:PersonalProfileDocument rdf:about="http://torrez.us/who">
|
||||||
|
<foaf:maker rdf:resource="http://torrez.us/who#elias"/>
|
||||||
|
<foaf:primaryTopic rdf:resource="http://torrez.us/who#elias"/>
|
||||||
|
</foaf:PersonalProfileDocument>
|
||||||
|
<foaf:Person rdf:about="http://torrez.us/who#anotherelias">
|
||||||
|
<foaf:name>Another Elias Torres</foaf:name>
|
||||||
|
|
||||||
|
<foaf:weblog>
|
||||||
|
<foaf:Document rdf:about="http://torrez.us/">
|
||||||
|
<dc:title>Elias Torres</dc:title>
|
||||||
|
<rdfs:seeAlso>
|
||||||
|
<rss:channel rdf:about="http://torrez.us/feed/rdf" />
|
||||||
|
</rdfs:seeAlso>
|
||||||
|
</foaf:Document>
|
||||||
|
</foaf:weblog>
|
||||||
|
|
||||||
|
|
||||||
|
<foaf:holdsAccount>
|
||||||
|
<foaf:OnlineAccount>
|
||||||
|
<foaf:accountServiceHomepage rdf:resource="http://del.icio.us/"/>
|
||||||
|
<foaf:accountName>SOMEID</foaf:accountName>
|
||||||
|
</foaf:OnlineAccount>
|
||||||
|
</foaf:holdsAccount>
|
||||||
|
<foaf:holdsAccount>
|
||||||
|
<foaf:OnlineAccount>
|
||||||
|
<foaf:accountServiceHomepage rdf:resource="http://flickr.com/"/>
|
||||||
|
<foaf:accountName>SOMEID</foaf:accountName>
|
||||||
|
</foaf:OnlineAccount>
|
||||||
|
</foaf:holdsAccount>
|
||||||
|
|
||||||
|
</foaf:Person>
|
||||||
|
</rdf:RDF>
|
18
tests/data/config/foaf-multiple.ini
Normal file
18
tests/data/config/foaf-multiple.ini
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[Planet]
|
||||||
|
name = FOAF Test Configuration
|
||||||
|
cache_directory = tests/work/config/cache
|
||||||
|
|
||||||
|
[tests/data/config/eliast.foaf]
|
||||||
|
content_type = foaf
|
||||||
|
random_setting = eliast
|
||||||
|
online_accounts =
|
||||||
|
http://del.icio.us/|http://del.icio.us/rss/{foaf:accountName}
|
||||||
|
http://flickr.com/|http://api.flickr.com/services/feeds/photos_public.gne?id={foaf:accountName}
|
||||||
|
|
||||||
|
[tests/data/config/another.foaf]
|
||||||
|
content_type = foaf
|
||||||
|
random_setting = another
|
||||||
|
online_accounts =
|
||||||
|
http://del.icio.us/|http://del.icio.us/rss/{foaf:accountName}
|
||||||
|
http://flickr.com/|http://api.flickr.com/services/feeds/photos_public.gne?id={foaf:accountName}
|
||||||
|
|
@ -7,4 +7,3 @@ content_type = foaf
|
|||||||
online_accounts =
|
online_accounts =
|
||||||
http://del.icio.us/|http://del.icio.us/rss/{foaf:accountName}
|
http://del.icio.us/|http://del.icio.us/rss/{foaf:accountName}
|
||||||
http://flickr.com/|http://api.flickr.com/services/feeds/photos_public.gne?id={foaf:accountName}
|
http://flickr.com/|http://api.flickr.com/services/feeds/photos_public.gne?id={foaf:accountName}
|
||||||
|
|
||||||
|
@ -91,6 +91,21 @@ class FoafTest(unittest.TestCase):
|
|||||||
'http://del.icio.us/rss/eliast',
|
'http://del.icio.us/rss/eliast',
|
||||||
'http://torrez.us/feed/rdf'], feeds)
|
'http://torrez.us/feed/rdf'], feeds)
|
||||||
|
|
||||||
|
def test_multiple_subscriptions(self):
|
||||||
|
config.load('tests/data/config/foaf-multiple.ini')
|
||||||
|
self.assertEqual(2,len(config.reading_lists()))
|
||||||
|
feeds = config.subscriptions()
|
||||||
|
feeds.sort()
|
||||||
|
self.assertEqual(5,len(feeds))
|
||||||
|
self.assertEqual(['http://api.flickr.com/services/feeds/' +
|
||||||
|
'photos_public.gne?id=77366516@N00',
|
||||||
|
'http://api.flickr.com/services/feeds/' +
|
||||||
|
'photos_public.gne?id=SOMEID',
|
||||||
|
'http://del.icio.us/rss/SOMEID',
|
||||||
|
'http://del.icio.us/rss/eliast',
|
||||||
|
'http://torrez.us/feed/rdf'], feeds)
|
||||||
|
|
||||||
|
|
||||||
# these tests only make sense if libRDF is installed
|
# these tests only make sense if libRDF is installed
|
||||||
try:
|
try:
|
||||||
import RDF
|
import RDF
|
||||||
|
Loading…
x
Reference in New Issue
Block a user