11from StringIO import StringIO
22
33from testtools import TestCase
4+ from testtools .matchers import *
45
56from propertysuggester .parser import CsvReader
67from propertysuggester .test .parser .test_abstract_reader import AbstractUniverseTest
8+ from propertysuggester .utils .datamodel import Claim , Entity , Snak
79
810
911class CsvReaderTest (AbstractUniverseTest ):
12+ def setUp (self ):
13+ AbstractUniverseTest .setUp (self )
14+
15+
1016 def test_universe (self ):
1117 out = StringIO ()
1218 out .writelines (["Q1,claim,373,string,Universe\n " ,
@@ -17,13 +23,31 @@ def test_universe(self):
1723 "Q1,qualifier,31,wikibase-entityid,Q41719\n " ])
1824 out .seek (0 )
1925 result = list (CsvReader .read_csv (out ))
20-
2126 self .assert_universe (result )
2227
23- class CsvReaderTest2 (TestCase ):
28+ def test_multiple_entities (self ):
29+ out = StringIO ()
30+ out .writelines (["Q1,claim,373,string,Universe\n " ,
31+ "Q2,claim,143,wikibase-entityid,Q328\n " ])
32+ out .seek (0 )
33+ result = list (CsvReader .read_csv (out ))
34+
35+ self .assertThat (result , HasLength (2 ))
36+ self .assertThat (result [0 ].title , Equals ("Q1" ))
37+ self .assertThat (result [1 ].title , Equals ("Q2" ))
38+
39+ def test_unknown_type (self ):
40+ out = StringIO ()
41+ out .writelines (["Q1,unknown,373,string,Universe\n " ])
42+ out .seek (0 )
43+ result = list (CsvReader .read_csv (out ))
44+
2445 def test_invalid_row_throws_exception (self ):
2546 f = StringIO ()
2647 f .writelines (["a,b" ])
2748 f .seek (0 )
28-
2949 self .assertRaises (ValueError , lambda : list (CsvReader .read_csv (f )))
50+
51+ def test_tostring (self ):
52+ e = Entity ("Q1" , [Claim (Snak (2 ,"string" ,"a" ))])
53+ str (e )
0 commit comments