author | Rémi Cardona <remi.cardona@logilab.fr> |
Mon, 23 Sep 2013 11:13:28 +0200 | |
branch | stable |
changeset 9239 | dde9fe1e0ce3 |
parent 8696 | 0bb18407c053 |
child 9748 | 5ee3d16b0df0 |
permissions | -rw-r--r-- |
8221
fd02d0120ddc
[test] fix test broken by renaming of module containing the cwxml parser and handling of vid in urls
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8188
diff
changeset
|
1 |
# copyright 2011-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
2 |
# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
3 |
# |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
4 |
# This file is part of CubicWeb. |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
5 |
# |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
6 |
# CubicWeb is free software: you can redistribute it and/or modify it under the |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
7 |
# terms of the GNU Lesser General Public License as published by the Free |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
8 |
# Software Foundation, either version 2.1 of the License, or (at your option) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
9 |
# any later version. |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
10 |
# |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
11 |
# CubicWeb is distributed in the hope that it will be useful, but WITHOUT |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
12 |
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
13 |
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
14 |
# details. |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
15 |
# |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
16 |
# You should have received a copy of the GNU Lesser General Public License along |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
17 |
# with CubicWeb. If not, see <http://www.gnu.org/licenses/>. |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
18 |
|
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
19 |
from datetime import datetime |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
20 |
|
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
21 |
from cubicweb.devtools.testlib import CubicWebTC |
8221
fd02d0120ddc
[test] fix test broken by renaming of module containing the cwxml parser and handling of vid in urls
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8188
diff
changeset
|
22 |
from cubicweb.sobjects.cwxmlparser import CWEntityXMLParser |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
23 |
|
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
24 |
orig_parse = CWEntityXMLParser.parse |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
25 |
|
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
26 |
def parse(self, url): |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
27 |
try: |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
28 |
url = RELATEDXML[url.split('?')[0]] |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
29 |
except KeyError: |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
30 |
pass |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
31 |
return orig_parse(self, url) |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
32 |
|
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
33 |
def setUpModule(): |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
34 |
CWEntityXMLParser.parse = parse |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
35 |
|
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
36 |
def tearDownModule(): |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
37 |
CWEntityXMLParser.parse = orig_parse |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
38 |
|
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
39 |
|
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
40 |
BASEXML = ''.join(u''' |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
41 |
<rset size="1"> |
7699
d07cde311630
[datafeed] properly take care to cwsource=system in imported xml. Closes #1877017
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7698
diff
changeset
|
42 |
<CWUser eid="5" cwuri="http://pouet.org/5" cwsource="system"> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
43 |
<login>sthenault</login> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
44 |
<upassword>toto</upassword> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
45 |
<last_login_time>2011-01-25 14:14:06</last_login_time> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
46 |
<creation_date>2010-01-22 10:27:59</creation_date> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
47 |
<modification_date>2011-01-25 14:14:06</modification_date> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
48 |
<use_email role="subject"> |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
49 |
<EmailAddress cwuri="http://pouet.org/6" eid="6"/> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
50 |
</use_email> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
51 |
<in_group role="subject"> |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
52 |
<CWGroup cwuri="http://pouet.org/7" eid="7"/> |
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
53 |
<CWGroup cwuri="http://pouet.org/8" eid="8"/> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
54 |
</in_group> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
55 |
<tags role="object"> |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
56 |
<Tag cwuri="http://pouet.org/9" eid="9"/> |
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
57 |
<Tag cwuri="http://pouet.org/10" eid="10"/> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
58 |
</tags> |
7553
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
59 |
<in_state role="subject"> |
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
60 |
<State cwuri="http://pouet.org/11" eid="11" name="activated"/> |
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
61 |
</in_state> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
62 |
</CWUser> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
63 |
</rset> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
64 |
'''.splitlines()) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
65 |
|
7553
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
66 |
RELATEDXML = { |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
67 |
'http://pouet.org/6': u''' |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
68 |
<rset size="1"> |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
69 |
<EmailAddress eid="6" cwuri="http://pouet.org/6"> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
70 |
<address>syt@logilab.fr</address> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
71 |
<modification_date>2010-04-13 14:35:56</modification_date> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
72 |
<creation_date>2010-04-13 14:35:56</creation_date> |
7916
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
73 |
<tags role="object"> |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
74 |
<Tag cwuri="http://pouet.org/9" eid="9"/> |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
75 |
</tags> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
76 |
</EmailAddress> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
77 |
</rset> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
78 |
''', |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
79 |
'http://pouet.org/7': u''' |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
80 |
<rset size="1"> |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
81 |
<CWGroup eid="7" cwuri="http://pouet.org/7"> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
82 |
<name>users</name> |
7916
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
83 |
<tags role="object"> |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
84 |
<Tag cwuri="http://pouet.org/9" eid="9"/> |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
85 |
</tags> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
86 |
</CWGroup> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
87 |
</rset> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
88 |
''', |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
89 |
'http://pouet.org/8': u''' |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
90 |
<rset size="1"> |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
91 |
<CWGroup eid="8" cwuri="http://pouet.org/8"> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
92 |
<name>unknown</name> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
93 |
</CWGroup> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
94 |
</rset> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
95 |
''', |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
96 |
'http://pouet.org/9': u''' |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
97 |
<rset size="1"> |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
98 |
<Tag eid="9" cwuri="http://pouet.org/9"> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
99 |
<name>hop</name> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
100 |
</Tag> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
101 |
</rset> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
102 |
''', |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
103 |
'http://pouet.org/10': u''' |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
104 |
<rset size="1"> |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
105 |
<Tag eid="10" cwuri="http://pouet.org/10"> |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
106 |
<name>unknown</name> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
107 |
</Tag> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
108 |
</rset> |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
109 |
''', |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
110 |
} |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
111 |
|
7534
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
112 |
|
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
113 |
OTHERXML = ''.join(u''' |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
114 |
<rset size="1"> |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
115 |
<CWUser eid="5" cwuri="http://pouet.org/5" cwsource="myfeed"> |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
116 |
<login>sthenault</login> |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
117 |
<upassword>toto</upassword> |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
118 |
<last_login_time>2011-01-25 14:14:06</last_login_time> |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
119 |
<creation_date>2010-01-22 10:27:59</creation_date> |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
120 |
<modification_date>2011-01-25 14:14:06</modification_date> |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
121 |
<in_group role="subject"> |
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
122 |
<CWGroup cwuri="http://pouet.org/7" eid="7"/> |
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
123 |
</in_group> |
7534
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
124 |
</CWUser> |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
125 |
</rset> |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
126 |
'''.splitlines() |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
127 |
) |
7699
d07cde311630
[datafeed] properly take care to cwsource=system in imported xml. Closes #1877017
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7698
diff
changeset
|
128 |
|
d07cde311630
[datafeed] properly take care to cwsource=system in imported xml. Closes #1877017
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7698
diff
changeset
|
129 |
|
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
130 |
class CWEntityXMLParserTC(CubicWebTC): |
7699
d07cde311630
[datafeed] properly take care to cwsource=system in imported xml. Closes #1877017
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7698
diff
changeset
|
131 |
"""/!\ this test use a pre-setup database /!\, if you modify above xml, |
d07cde311630
[datafeed] properly take care to cwsource=system in imported xml. Closes #1877017
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7698
diff
changeset
|
132 |
REMOVE THE DATABASE TEMPLATE else it won't be considered |
d07cde311630
[datafeed] properly take care to cwsource=system in imported xml. Closes #1877017
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7698
diff
changeset
|
133 |
""" |
7534
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
134 |
test_db_id = 'xmlparser' |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
135 |
@classmethod |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
136 |
def pre_setup_database(cls, session, config): |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
137 |
myfeed = session.create_entity('CWSource', name=u'myfeed', type=u'datafeed', |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
138 |
parser=u'cw.entityxml', url=BASEXML) |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
139 |
myotherfeed = session.create_entity('CWSource', name=u'myotherfeed', type=u'datafeed', |
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
140 |
parser=u'cw.entityxml', url=OTHERXML) |
7534
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
141 |
session.commit() |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
142 |
myfeed.init_mapping([(('CWUser', 'use_email', '*'), |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
143 |
u'role=subject\naction=copy'), |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
144 |
(('CWUser', 'in_group', '*'), |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
145 |
u'role=subject\naction=link\nlinkattr=name'), |
7553
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
146 |
(('CWUser', 'in_state', '*'), |
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
147 |
u'role=subject\naction=link\nlinkattr=name'), |
7916
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
148 |
(('*', 'tags', '*'), |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
149 |
u'role=object\naction=link-or-create\nlinkattr=name'), |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
150 |
]) |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
151 |
myotherfeed.init_mapping([(('CWUser', 'in_group', '*'), |
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
152 |
u'role=subject\naction=link\nlinkattr=name'), |
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
153 |
(('CWUser', 'in_state', '*'), |
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
154 |
u'role=subject\naction=link\nlinkattr=name'), |
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
155 |
]) |
7534
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
156 |
session.create_entity('Tag', name=u'hop') |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
157 |
|
7531
e891ca479586
[datafeed, cwxml] parser now try to complete source's urls so one can add url such as <myinstance>/project. Closes #1759908
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7463
diff
changeset
|
158 |
def test_complete_url(self): |
e891ca479586
[datafeed, cwxml] parser now try to complete source's urls so one can add url such as <myinstance>/project. Closes #1759908
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7463
diff
changeset
|
159 |
dfsource = self.repo.sources_by_uri['myfeed'] |
e891ca479586
[datafeed, cwxml] parser now try to complete source's urls so one can add url such as <myinstance>/project. Closes #1759908
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7463
diff
changeset
|
160 |
parser = dfsource._get_parser(self.session) |
7701
e5ba5de1d485
[datafeed] case insensitive etype. Closes #1877014
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7700
diff
changeset
|
161 |
self.assertEqual(parser.complete_url('http://www.cubicweb.org/CWUser'), |
8221
fd02d0120ddc
[test] fix test broken by renaming of module containing the cwxml parser and handling of vid in urls
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8188
diff
changeset
|
162 |
'http://www.cubicweb.org/CWUser?relation=tags-object&relation=in_group-subject&relation=in_state-subject&relation=use_email-subject') |
7531
e891ca479586
[datafeed, cwxml] parser now try to complete source's urls so one can add url such as <myinstance>/project. Closes #1759908
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7463
diff
changeset
|
163 |
self.assertEqual(parser.complete_url('http://www.cubicweb.org/cwuser'), |
8221
fd02d0120ddc
[test] fix test broken by renaming of module containing the cwxml parser and handling of vid in urls
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8188
diff
changeset
|
164 |
'http://www.cubicweb.org/cwuser?relation=tags-object&relation=in_group-subject&relation=in_state-subject&relation=use_email-subject') |
7531
e891ca479586
[datafeed, cwxml] parser now try to complete source's urls so one can add url such as <myinstance>/project. Closes #1759908
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7463
diff
changeset
|
165 |
self.assertEqual(parser.complete_url('http://www.cubicweb.org/cwuser?vid=rdf&relation=hop'), |
7553
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
166 |
'http://www.cubicweb.org/cwuser?relation=hop&relation=tags-object&relation=in_group-subject&relation=in_state-subject&relation=use_email-subject&vid=rdf') |
7689
a86fd3ec322e
[datafeed] closes #1873616 (user's url corruption when etype is not recognized
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7553
diff
changeset
|
167 |
self.assertEqual(parser.complete_url('http://www.cubicweb.org/?rql=cwuser&vid=rdf&relation=hop'), |
a86fd3ec322e
[datafeed] closes #1873616 (user's url corruption when etype is not recognized
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7553
diff
changeset
|
168 |
'http://www.cubicweb.org/?rql=cwuser&relation=hop&vid=rdf') |
a86fd3ec322e
[datafeed] closes #1873616 (user's url corruption when etype is not recognized
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7553
diff
changeset
|
169 |
self.assertEqual(parser.complete_url('http://www.cubicweb.org/?rql=cwuser&relation=hop'), |
8221
fd02d0120ddc
[test] fix test broken by renaming of module containing the cwxml parser and handling of vid in urls
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
8188
diff
changeset
|
170 |
'http://www.cubicweb.org/?rql=cwuser&relation=hop') |
7531
e891ca479586
[datafeed, cwxml] parser now try to complete source's urls so one can add url such as <myinstance>/project. Closes #1759908
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7463
diff
changeset
|
171 |
|
e891ca479586
[datafeed, cwxml] parser now try to complete source's urls so one can add url such as <myinstance>/project. Closes #1759908
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7463
diff
changeset
|
172 |
|
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
173 |
def test_actions(self): |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
174 |
dfsource = self.repo.sources_by_uri['myfeed'] |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
175 |
self.assertEqual(dfsource.mapping, |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
176 |
{u'CWUser': { |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
177 |
(u'in_group', u'subject', u'link'): [ |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
178 |
(u'CWGroup', {u'linkattr': u'name'})], |
7553
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
179 |
(u'in_state', u'subject', u'link'): [ |
935423529f45
[datafeed cw parser] refactor: split logic that was in the parser
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7552
diff
changeset
|
180 |
(u'State', {u'linkattr': u'name'})], |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
181 |
(u'tags', u'object', u'link-or-create'): [ |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
182 |
(u'Tag', {u'linkattr': u'name'})], |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
183 |
(u'use_email', u'subject', u'copy'): [ |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
184 |
(u'EmailAddress', {})] |
7916
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
185 |
}, |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
186 |
u'CWGroup': { |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
187 |
(u'tags', u'object', u'link-or-create'): [ |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
188 |
(u'Tag', {u'linkattr': u'name'})], |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
189 |
}, |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
190 |
u'EmailAddress': { |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
191 |
(u'tags', u'object', u'link-or-create'): [ |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
192 |
(u'Tag', {u'linkattr': u'name'})], |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
193 |
}, |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
194 |
}) |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
195 |
session = self.repo.internal_session(safe=True) |
7351
ed66f236715d
fix _set_relation when no target eids, update datafeed source pull_data arguments to raise on error during tests
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6968
diff
changeset
|
196 |
stats = dfsource.pull_data(session, force=True, raise_on_error=True) |
8696
0bb18407c053
[toward py3k] rewrite dict.keys() and dict.values() (part of #2711624)
Nicolas Chauvat <nicolas.chauvat@logilab.fr>
parents:
8694
diff
changeset
|
197 |
self.assertEqual(sorted(stats), ['checked', 'created', 'updated']) |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
198 |
self.assertEqual(len(stats['created']), 2) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
199 |
self.assertEqual(stats['updated'], set()) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
200 |
|
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
201 |
user = self.execute('CWUser X WHERE X login "sthenault"').get_entity(0, 0) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
202 |
self.assertEqual(user.creation_date, datetime(2010, 01, 22, 10, 27, 59)) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
203 |
self.assertEqual(user.modification_date, datetime(2011, 01, 25, 14, 14, 06)) |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
204 |
self.assertEqual(user.cwuri, 'http://pouet.org/5') |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
205 |
self.assertEqual(user.cw_source[0].name, 'myfeed') |
7552
82dde8276a5b
[datafeed, entities] url for entities from a datafeed source should be on their origin site. Closes #1769391
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7534
diff
changeset
|
206 |
self.assertEqual(user.absolute_url(), 'http://pouet.org/5') |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
207 |
self.assertEqual(len(user.use_email), 1) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
208 |
# copy action |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
209 |
email = user.use_email[0] |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
210 |
self.assertEqual(email.address, 'syt@logilab.fr') |
6968
2abc3befb788
[test] update cwxml tests: computed cwuri have changed, and parser.parse isn't anymore a static method
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
6960
diff
changeset
|
211 |
self.assertEqual(email.cwuri, 'http://pouet.org/6') |
7552
82dde8276a5b
[datafeed, entities] url for entities from a datafeed source should be on their origin site. Closes #1769391
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7534
diff
changeset
|
212 |
self.assertEqual(email.absolute_url(), 'http://pouet.org/6') |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
213 |
self.assertEqual(email.cw_source[0].name, 'myfeed') |
7916
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
214 |
self.assertEqual(len(email.reverse_tags), 1) |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
215 |
self.assertEqual(email.reverse_tags[0].name, 'hop') |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
216 |
# link action |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
217 |
self.assertFalse(self.execute('CWGroup X WHERE X name "unknown"')) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
218 |
groups = sorted([g.name for g in user.in_group]) |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
219 |
self.assertEqual(groups, ['users']) |
7916
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
220 |
group = user.in_group[0] |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
221 |
self.assertEqual(len(group.reverse_tags), 1) |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
222 |
self.assertEqual(group.reverse_tags[0].name, 'hop') |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
223 |
# link or create action |
7916
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
224 |
tags = set([(t.name, t.cwuri.replace(str(t.eid), ''), t.cw_source[0].name) |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
225 |
for t in user.reverse_tags]) |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
226 |
self.assertEqual(tags, set((('hop', 'http://testing.fr/cubicweb/', 'system'), |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
227 |
('unknown', 'http://testing.fr/cubicweb/', 'system'))) |
54e240c1b419
[datafeed parser] properly recurse on nodes to follow all mapped relations (closes #1988432)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7708
diff
changeset
|
228 |
) |
7463
a7daba4046db
[test] update test to avoid failure
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7399
diff
changeset
|
229 |
session.set_cnxset() |
7957
5da7ede69063
[test] fix some failures recently introduced
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7916
diff
changeset
|
230 |
with session.security_enabled(read=False): # avoid Unauthorized due to password selection |
5da7ede69063
[test] fix some failures recently introduced
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7916
diff
changeset
|
231 |
stats = dfsource.pull_data(session, force=True, raise_on_error=True) |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
232 |
self.assertEqual(stats['created'], set()) |
8435
5064b6e0d6f4
[datafeed] correctly distinguish checked/updated
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8221
diff
changeset
|
233 |
self.assertEqual(len(stats['updated']), 0) |
5064b6e0d6f4
[datafeed] correctly distinguish checked/updated
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8221
diff
changeset
|
234 |
self.assertEqual(len(stats['checked']), 2) |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
235 |
self.repo._type_source_cache.clear() |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
236 |
self.repo._extid_cache.clear() |
7463
a7daba4046db
[test] update test to avoid failure
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7399
diff
changeset
|
237 |
session.set_cnxset() |
7957
5da7ede69063
[test] fix some failures recently introduced
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7916
diff
changeset
|
238 |
with session.security_enabled(read=False): # avoid Unauthorized due to password selection |
5da7ede69063
[test] fix some failures recently introduced
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7916
diff
changeset
|
239 |
stats = dfsource.pull_data(session, force=True, raise_on_error=True) |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
240 |
self.assertEqual(stats['created'], set()) |
8435
5064b6e0d6f4
[datafeed] correctly distinguish checked/updated
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8221
diff
changeset
|
241 |
self.assertEqual(len(stats['updated']), 0) |
5064b6e0d6f4
[datafeed] correctly distinguish checked/updated
Aurelien Campeas <aurelien.campeas@logilab.fr>
parents:
8221
diff
changeset
|
242 |
self.assertEqual(len(stats['checked']), 2) |
7399
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
243 |
session.commit() |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
244 |
|
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
245 |
# test move to system source |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
246 |
self.sexecute('SET X cw_source S WHERE X eid %(x)s, S name "system"', {'x': email.eid}) |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
247 |
self.commit() |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
248 |
rset = self.sexecute('EmailAddress X WHERE X address "syt@logilab.fr"') |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
249 |
self.assertEqual(len(rset), 1) |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
250 |
e = rset.get_entity(0, 0) |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
251 |
self.assertEqual(e.eid, email.eid) |
7552
82dde8276a5b
[datafeed, entities] url for entities from a datafeed source should be on their origin site. Closes #1769391
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7534
diff
changeset
|
252 |
self.assertEqual(e.cw_metainformation(), {'source': {'type': u'native', 'uri': u'system', |
82dde8276a5b
[datafeed, entities] url for entities from a datafeed source should be on their origin site. Closes #1769391
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7534
diff
changeset
|
253 |
'use-cwuri-as-url': False}, |
7399
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
254 |
'type': 'EmailAddress', |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
255 |
'extid': None}) |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
256 |
self.assertEqual(e.cw_source[0].name, 'system') |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
257 |
self.assertEqual(e.reverse_use_email[0].login, 'sthenault') |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
258 |
self.commit() |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
259 |
# test everything is still fine after source synchronization |
7463
a7daba4046db
[test] update test to avoid failure
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7399
diff
changeset
|
260 |
session.set_cnxset() |
7957
5da7ede69063
[test] fix some failures recently introduced
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7916
diff
changeset
|
261 |
with session.security_enabled(read=False): # avoid Unauthorized due to password selection |
5da7ede69063
[test] fix some failures recently introduced
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7916
diff
changeset
|
262 |
stats = dfsource.pull_data(session, force=True, raise_on_error=True) |
7399
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
263 |
rset = self.sexecute('EmailAddress X WHERE X address "syt@logilab.fr"') |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
264 |
self.assertEqual(len(rset), 1) |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
265 |
e = rset.get_entity(0, 0) |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
266 |
self.assertEqual(e.eid, email.eid) |
7552
82dde8276a5b
[datafeed, entities] url for entities from a datafeed source should be on their origin site. Closes #1769391
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7534
diff
changeset
|
267 |
self.assertEqual(e.cw_metainformation(), {'source': {'type': u'native', 'uri': u'system', |
82dde8276a5b
[datafeed, entities] url for entities from a datafeed source should be on their origin site. Closes #1769391
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7534
diff
changeset
|
268 |
'use-cwuri-as-url': False}, |
7399
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
269 |
'type': 'EmailAddress', |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
270 |
'extid': None}) |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
271 |
self.assertEqual(e.cw_source[0].name, 'system') |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
272 |
self.assertEqual(e.reverse_use_email[0].login, 'sthenault') |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
273 |
session.commit() |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
274 |
|
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
275 |
# test delete entity |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
276 |
e.cw_delete() |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
277 |
self.commit() |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
278 |
# test everything is still fine after source synchronization |
7463
a7daba4046db
[test] update test to avoid failure
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7399
diff
changeset
|
279 |
session.set_cnxset() |
7957
5da7ede69063
[test] fix some failures recently introduced
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7916
diff
changeset
|
280 |
with session.security_enabled(read=False): # avoid Unauthorized due to password selection |
5da7ede69063
[test] fix some failures recently introduced
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7916
diff
changeset
|
281 |
stats = dfsource.pull_data(session, force=True, raise_on_error=True) |
7399
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
282 |
rset = self.sexecute('EmailAddress X WHERE X address "syt@logilab.fr"') |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
283 |
self.assertEqual(len(rset), 0) |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
284 |
rset = self.sexecute('Any X WHERE X use_email E, X login "sthenault"') |
972ed1843bd8
[multi-sources] support for moving an entity from an external source (closes #343818)
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7351
diff
changeset
|
285 |
self.assertEqual(len(rset), 0) |
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
286 |
|
7534
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
287 |
def test_external_entity(self): |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
288 |
dfsource = self.repo.sources_by_uri['myotherfeed'] |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
289 |
session = self.repo.internal_session(safe=True) |
7534
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
290 |
stats = dfsource.pull_data(session, force=True, raise_on_error=True) |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
291 |
user = self.execute('CWUser X WHERE X login "sthenault"').get_entity(0, 0) |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
292 |
self.assertEqual(user.creation_date, datetime(2010, 01, 22, 10, 27, 59)) |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
293 |
self.assertEqual(user.modification_date, datetime(2011, 01, 25, 14, 14, 06)) |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
294 |
self.assertEqual(user.cwuri, 'http://pouet.org/5') |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
295 |
self.assertEqual(user.cw_source[0].name, 'myfeed') |
d58a9d96aad8
[datafeed, cw.xml] xml now carry entity's source information, interpreted at the other end so that for instance when an entity from elo is seen when importing cwo, it's properly marked as coming from elo source if one exists
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7531
diff
changeset
|
296 |
|
7700
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
297 |
def test_noerror_missing_fti_attribute(self): |
7698
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
298 |
dfsource = self.repo.sources_by_uri['myfeed'] |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
299 |
session = self.repo.internal_session(safe=True) |
7698
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
300 |
parser = dfsource._get_parser(session) |
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
301 |
dfsource.process_urls(parser, [''' |
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
302 |
<rset size="1"> |
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
303 |
<Card eid="50" cwuri="http://pouet.org/50" cwsource="system"> |
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
304 |
<title>how-to</title> |
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
305 |
</Card> |
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
306 |
</rset> |
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
307 |
'''], raise_on_error=True) |
1c7411535c2d
[datafeed / fti] rather control a 'complete' parameter than setting empty attribute values
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7689
diff
changeset
|
308 |
|
7700
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
309 |
def test_noerror_unspecified_date(self): |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
310 |
dfsource = self.repo.sources_by_uri['myfeed'] |
7708
45be3a9debe6
[datafeed] for datafeed source, we don't want commit in extid2eid but explicitly handled by the source. Also, we should use 'safe' internal session
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7701
diff
changeset
|
311 |
session = self.repo.internal_session(safe=True) |
7700
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
312 |
parser = dfsource._get_parser(session) |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
313 |
dfsource.process_urls(parser, [''' |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
314 |
<rset size="1"> |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
315 |
<Card eid="50" cwuri="http://pouet.org/50" cwsource="system"> |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
316 |
<title>how-to</title> |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
317 |
<content>how-to</content> |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
318 |
<synopsis>how-to</synopsis> |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
319 |
<creation_date/> |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
320 |
</Card> |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
321 |
</rset> |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
322 |
'''], raise_on_error=True) |
0010dde5352a
[datafeed] closes #1875322: empty tag means None value
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
7699
diff
changeset
|
323 |
|
6960
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
324 |
if __name__ == '__main__': |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
325 |
from logilab.common.testlib import unittest_main |
822f2530570d
[datafeed] add parser to import cubicweb xml
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff
changeset
|
326 |
unittest_main() |