@@ -27,6 +27,25 @@ def test_uopengraph(self):
27
27
data = extruct .extract (body , syntaxes = ['opengraph' ], uniform = True )
28
28
self .assertEqual (data ['opengraph' ], expected )
29
29
30
+ def test_uopengraph_with_og_array (self ):
31
+ expected = [{"@context" : {
32
+ "og" : "http://ogp.me/ns#" ,
33
+ "fb" : "http://www.facebook.com/2008/fbml" ,
34
+ "concerts" : "http://ogp.me/ns/fb/songkick-concerts#"
35
+ },
36
+ "fb:app_id" : "308540029359" ,
37
+ "og:site_name" : "Songkick" ,
38
+ "@type" : "songkick-concerts:artist" ,
39
+ "og:title" : "Elysian Fields" ,
40
+ "og:description" : "Buy tickets for an upcoming Elysian Fields concert near you. List of all Elysian Fields tickets and tour dates for 2017." ,
41
+ "og:url" : "http://www.songkick.com/artists/236156-elysian-fields" ,
42
+ "og:image" : [ "http://images.sk-static.com/images/media/img/col4/20100330-103600-169450.jpg" ,
43
+ "http://images.sk-static.com/SECONDARY_IMAGE.jpg" ],
44
+ }]
45
+ body = get_testdata ('songkick' , 'elysianfields.html' )
46
+ data = extruct .extract (body , syntaxes = ['opengraph' ], uniform = True , with_og_array = True )
47
+ self .assertEqual (data ['opengraph' ], expected )
48
+
30
49
def test_uopengraph_duplicated_priorities (self ):
31
50
# Ensures that first seen property is kept when flattening
32
51
data = _uopengraph ([{'properties' :
@@ -58,6 +77,36 @@ def test_uopengraph_duplicated_priorities(self):
58
77
assert data [0 ]['prop_non_empty2' ] == 'value!'
59
78
assert data [0 ]['prop_non_empty3' ] == 'value!'
60
79
80
+ def test_uopengraph_duplicated_with_og_array (self ):
81
+ # Ensures that first seen property is kept when flattening
82
+ data = _uopengraph ([{'properties' :
83
+ [('prop_{}' .format (k ), 'value_{}' .format (v ))
84
+ for k in range (5 )
85
+ for v in range (5 )],
86
+ 'namespace' : 'namespace' }], with_og_array = True )
87
+ for k in range (5 ):
88
+ assert data [0 ]['prop_{}' .format (k )] == ['value_0' , 'value_1' , 'value_2' , 'value_3' , 'value_4' ]
89
+
90
+ # Ensures that empty is not returned if a property contains any
91
+ # non empty value
92
+ data = _uopengraph ([{'properties' :
93
+ [('prop_empty' , ' ' ),
94
+
95
+ ('prop_non_empty' , ' ' ),
96
+ ('prop_non_empty' , 'value!' ),
97
+
98
+ ('prop_non_empty2' , 'value!' ),
99
+ ('prop_non_empty2' , ' ' ),
100
+
101
+ ('prop_non_empty3' , ' ' ),
102
+ ('prop_non_empty3' , 'value!' ),
103
+ ('prop_non_empty3' , 'other value' ),
104
+ ],
105
+ 'namespace' : 'namespace' }], with_og_array = True )
106
+ assert data [0 ]['prop_empty' ] == ' '
107
+ assert data [0 ]['prop_non_empty' ] == 'value!'
108
+ assert data [0 ]['prop_non_empty2' ] == 'value!'
109
+ assert data [0 ]['prop_non_empty3' ] == ['value!' , 'other value' ]
61
110
62
111
def test_umicroformat (self ):
63
112
expected = [ { '@context' : 'http://microformats.org/wiki/' ,
0 commit comments