Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Lu Xu
erp5
Commits
227402e3
Commit
227402e3
authored
May 25, 2020
by
Arnaud Fontaine
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ZODB Components: erp5_dms: Migrate ExternalSource and erp5_dms-related Unit Tests from filesystem.
parent
431f8484
Changes
30
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
1208 additions
and
245 deletions
+1208
-245
bt5/erp5_discussion/TestTemplateItem/portal_components/test.erp5.testERP5Discussion.py
...ateItem/portal_components/test.erp5.testERP5Discussion.py
+5
-5
bt5/erp5_discussion/TestTemplateItem/portal_components/test.erp5.testERP5Discussion.xml
...teItem/portal_components/test.erp5.testERP5Discussion.xml
+110
-0
bt5/erp5_discussion/bt/template_test_id_list
bt5/erp5_discussion/bt/template_test_id_list
+1
-0
bt5/erp5_discussion/bt/test_dependency_list
bt5/erp5_discussion/bt/test_dependency_list
+2
-0
bt5/erp5_dms/DocumentTemplateItem/portal_components/document.erp5.ExternalSource.py
...ateItem/portal_components/document.erp5.ExternalSource.py
+0
-0
bt5/erp5_dms/DocumentTemplateItem/portal_components/document.erp5.ExternalSource.xml
...teItem/portal_components/document.erp5.ExternalSource.xml
+104
-0
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testDms.py
...s/TestTemplateItem/portal_components/test.erp5.testDms.py
+70
-91
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testDms.xml
.../TestTemplateItem/portal_components/test.erp5.testDms.xml
+110
-0
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testDmsWithFlare.py
...plateItem/portal_components/test.erp5.testDmsWithFlare.py
+1
-1
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testDmsWithFlare.xml
...lateItem/portal_components/test.erp5.testDmsWithFlare.xml
+110
-0
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testERP5WebWithDms.py
...ateItem/portal_components/test.erp5.testERP5WebWithDms.py
+6
-5
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testERP5WebWithDms.xml
...teItem/portal_components/test.erp5.testERP5WebWithDms.xml
+110
-0
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testOOoConversionCache.py
...tem/portal_components/test.erp5.testOOoConversionCache.py
+77
-89
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testOOoConversionCache.xml
...em/portal_components/test.erp5.testOOoConversionCache.xml
+110
-0
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testOOoConversionServerRetry.py
...rtal_components/test.erp5.testOOoConversionServerRetry.py
+10
-10
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testOOoConversionServerRetry.xml
...tal_components/test.erp5.testOOoConversionServerRetry.xml
+110
-0
bt5/erp5_dms/bt/template_document_id_list
bt5/erp5_dms/bt/template_document_id_list
+1
-0
bt5/erp5_dms/bt/template_test_id_list
bt5/erp5_dms/bt/template_test_id_list
+5
-0
bt5/erp5_dms/bt/test_dependency_list
bt5/erp5_dms/bt/test_dependency_list
+2
-0
bt5/erp5_dms_conversion_catalog/TestTemplateItem/portal_components/test.erp5.testDmsWithPreConversion.py
...m/portal_components/test.erp5.testDmsWithPreConversion.py
+1
-3
bt5/erp5_dms_conversion_catalog/TestTemplateItem/portal_components/test.erp5.testDmsWithPreConversion.xml
.../portal_components/test.erp5.testDmsWithPreConversion.xml
+110
-0
bt5/erp5_dms_conversion_catalog/bt/template_test_id_list
bt5/erp5_dms_conversion_catalog/bt/template_test_id_list
+1
-0
bt5/erp5_dms_conversion_catalog/bt/test_dependency_list
bt5/erp5_dms_conversion_catalog/bt/test_dependency_list
+2
-0
bt5/erp5_email_reader/DocumentTemplateItem/portal_components/document.erp5.EmailReader.py
...mplateItem/portal_components/document.erp5.EmailReader.py
+1
-1
bt5/erp5_km/TestTemplateItem/portal_components/test.erp5.testKM.py
...km/TestTemplateItem/portal_components/test.erp5.testKM.py
+25
-38
bt5/erp5_km/TestTemplateItem/portal_components/test.erp5.testKM.xml
...m/TestTemplateItem/portal_components/test.erp5.testKM.xml
+110
-0
bt5/erp5_km/bt/template_test_id_list
bt5/erp5_km/bt/template_test_id_list
+1
-0
bt5/erp5_km/bt/test_dependency_list
bt5/erp5_km/bt/test_dependency_list
+11
-0
bt5/erp5_pdf_merge/TestTemplateItem/portal_components/test.erp5.testERP5PDFMerge.py
...plateItem/portal_components/test.erp5.testERP5PDFMerge.py
+1
-1
bt5/erp5_run_my_doc/TestTemplateItem/portal_components/test.erp5.testRunMyDoc.py
...tTemplateItem/portal_components/test.erp5.testRunMyDoc.py
+1
-1
No files found.
product/ERP5/tests/
testERP5Discussion.py
→
bt5/erp5_discussion/TestTemplateItem/portal_components/test.erp5.
testERP5Discussion.py
View file @
227402e3
...
...
@@ -32,7 +32,7 @@
import
unittest
from
AccessControl.SecurityManagement
import
newSecurityManager
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
from
Products.ERP5OOo.tests
.testDms
import
makeFileUpload
from
erp5.component.test
.testDms
import
makeFileUpload
class
TestERP5Discussion
(
ERP5TypeTestCase
):
...
...
@@ -59,7 +59,7 @@ class TestERP5Discussion(ERP5TypeTestCase):
'erp5_jquery'
,
'erp5_discussion'
,
)
def
login
(
self
):
def
login
(
self
,
*
args
,
**
kw
):
uf
=
self
.
getPortal
().
acl_users
uf
.
_doAddUser
(
self
.
manager_username
,
self
.
manager_password
,
[
'Manager'
],
[])
user
=
uf
.
getUserById
(
self
.
manager_username
).
__of__
(
uf
)
...
...
@@ -87,7 +87,7 @@ class TestERP5Discussion(ERP5TypeTestCase):
def
test_01_createDiscussionThread
(
self
):
"""Create a new discussion thread"""
self
.
stepCreateThread
()
;
self
.
stepCreateThread
()
self
.
tic
()
def
test_02_createDiscussionPost
(
self
):
...
...
@@ -143,8 +143,8 @@ class TestERP5Discussion(ERP5TypeTestCase):
self
.
assertEqual
(
0
,
len
(
attachment_list
))
# check attachment creation
file
=
makeFileUpload
(
'TEST-en-002.doc'
)
web_section1
.
WebSection_createNewDiscussionThread
(
'test1-new-with-attachment'
,
'test1 body'
,
file
=
file
)
file
_
=
makeFileUpload
(
'TEST-en-002.doc'
)
web_section1
.
WebSection_createNewDiscussionThread
(
'test1-new-with-attachment'
,
'test1 body'
,
file
=
file
_
)
discussion_thread
,
=
[
x
for
x
in
self
.
portal
.
discussion_thread_module
.
objectValues
()
\
if
x
.
getId
()
not
in
discussion_thread_id_set
]
discussion_thread_id_set
.
add
(
discussion_thread
.
getId
())
...
...
bt5/erp5_discussion/TestTemplateItem/portal_components/test.erp5.testERP5Discussion.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testERP5Discussion
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5.tests.testERP5Discussion
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testERP5Discussion
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_discussion/bt/template_test_id_list
0 → 100644
View file @
227402e3
test.erp5.testERP5Discussion
\ No newline at end of file
bt5/erp5_discussion/bt/test_dependency_list
0 → 100644
View file @
227402e3
erp5_full_text_mroonga_catalog
erp5_ingestion_mysql_innodb_catalog
\ No newline at end of file
product/ERP5/Document/
ExternalSource.py
→
bt5/erp5_dms/DocumentTemplateItem/portal_components/document.erp5.
ExternalSource.py
View file @
227402e3
File moved
bt5/erp5_dms/DocumentTemplateItem/portal_components/document.erp5.ExternalSource.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Document Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
ExternalSource
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5.Document.ExternalSource
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
document.erp5.ExternalSource
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Document Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
product/ERP5OOo/tests/
testDms.py
→
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.
testDms.py
View file @
227402e3
...
...
@@ -57,7 +57,6 @@ from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
from
Products.ERP5Type.tests.utils
import
FileUpload
from
Products.ERP5Type.tests.utils
import
DummyLocalizer
from
Products.ERP5OOo.OOoUtils
import
OOoBuilder
from
Products.CMFCore.utils
import
getToolByName
from
AccessControl.SecurityManagement
import
newSecurityManager
from
AccessControl
import
getSecurityManager
from
Products.ERP5.Document.Document
import
NotConvertedError
...
...
@@ -77,12 +76,13 @@ from ZTUtils import make_query
QUIET
=
0
TEST_FILES_HOME
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'test_document'
)
from
Products.ERP5OOo
import
tests
TEST_FILES_HOME
=
os
.
path
.
join
(
tests
.
__path__
[
0
],
'test_document'
)
FILENAME_REGULAR_EXPRESSION
=
"(?P<reference>[A-Z]{3,10})-(?P<language>[a-z]{2})-(?P<version>[0-9]{3})"
REFERENCE_REGULAR_EXPRESSION
=
"(?P<reference>[A-Z]{3,10})(-(?P<language>[a-z]{2}))?(-(?P<version>[0-9]{3}))?"
def
makeFilePath
(
name
):
return
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'test_document'
,
name
)
return
os
.
path
.
join
(
TEST_FILES_HOME
,
name
)
def
makeFileUpload
(
name
,
as_name
=
None
):
if
as_name
is
None
:
...
...
@@ -120,14 +120,14 @@ class TestDocumentMixin(ERP5TypeTestCase):
def
setSystemPreference
(
self
):
pref
=
self
.
getDefaultSystemPreference
()
id
=
self
.
__class__
.
__name__
if
pref
.
getPreferredConversionCacheFactory
()
!=
id
:
id
_
=
self
.
__class__
.
__name__
if
pref
.
getPreferredConversionCacheFactory
()
!=
id
_
:
try
:
self
.
portal
.
portal_caches
[
id
]
self
.
portal
.
portal_caches
[
id
_
]
except
KeyError
:
self
.
setCacheFactory
(
self
.
portal
.
portal_caches
.
newContent
(
id
,
'Cache Factory'
))
pref
.
setPreferredConversionCacheFactory
(
id
)
self
.
portal
.
portal_caches
.
newContent
(
id
_
,
'Cache Factory'
))
pref
.
setPreferredConversionCacheFactory
(
id
_
)
pref
.
setPreferredDocumentFilenameRegularExpression
(
FILENAME_REGULAR_EXPRESSION
)
pref
.
setPreferredDocumentReferenceRegularExpression
(
REFERENCE_REGULAR_EXPRESSION
)
...
...
@@ -209,13 +209,13 @@ class TestDocument(TestDocumentMixin):
doctext
.
setLanguage
(
language
)
return
doctext
def
getDocument
(
self
,
id
):
def
getDocument
(
self
,
id
_
):
"""
Returns a document with given ID in the
document module.
"""
document_module
=
self
.
portal
.
document_module
return
getattr
(
document_module
,
id
)
return
getattr
(
document_module
,
id
_
)
def
getPreferences
(
self
,
image_display
):
preference_tool
=
self
.
portal
.
portal_preferences
...
...
@@ -228,10 +228,10 @@ class TestDocument(TestDocumentMixin):
def
getURLSizeList
(
self
,
uri
,
**
kw
):
# __ac=RVJQNVR5cGVUZXN0Q2FzZTo%3D is encoded ERP5TypeTestCase with empty password
url
=
'%s?%s&__ac=%s'
%
(
uri
,
make_query
(
kw
),
'RVJQNVR5cGVUZXN0Q2FzZTo%3D'
)
format
=
kw
.
get
(
'format'
,
'jpeg'
)
format
_
=
kw
.
get
(
'format'
,
'jpeg'
)
infile
=
urllib
.
urlopen
(
url
)
# save as file with proper incl. format filename (for some reasons PIL uses this info)
filename
=
"%s%stest-image-format-resize.%s"
%
(
os
.
getcwd
(),
os
.
sep
,
format
)
filename
=
"%s%stest-image-format-resize.%s"
%
(
os
.
getcwd
(),
os
.
sep
,
format
_
)
f
=
open
(
filename
,
"w"
)
image_data
=
infile
.
read
()
f
.
write
(
image_data
)
...
...
@@ -245,8 +245,7 @@ class TestDocument(TestDocumentMixin):
except
ImportError
:
identify_output
=
Popen
([
'identify'
,
filename
],
stdout
=
PIPE
).
communicate
()[
0
]
image_size
=
tuple
(
map
(
lambda
x
:
int
(
x
),
identify_output
.
split
()[
2
].
split
(
'x'
)))
image_size
=
tuple
([
int
(
x
)
for
x
in
identify_output
.
split
()[
2
].
split
(
'x'
)])
os
.
remove
(
filename
)
return
image_size
,
file_size
...
...
@@ -277,20 +276,20 @@ class TestDocument(TestDocumentMixin):
# the same document should now have revision 4 (because it should have done mergeRevision)
# getRevisionList should return (1, 2, 3, 4)
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
def
getTestDocument
():
return
self
.
portal
.
restrictedTraverse
(
document_url
)
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'1'
)
getTestDocument
().
edit
(
file
=
file
)
getTestDocument
().
edit
(
file
=
file
_
)
self
.
tic
()
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'2'
)
getTestDocument
().
edit
(
title
=
'Hey Joe'
)
self
.
tic
()
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'3'
)
another_document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file_
)
self
.
tic
()
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'4'
)
self
.
assertEqual
(
getTestDocument
().
getRevisionList
(),
[
'1'
,
'2'
,
'3'
,
'4'
])
...
...
@@ -307,7 +306,6 @@ class TestDocument(TestDocumentMixin):
# run isVersionUnique on 1, 2, 3 (should return True)
# run getLatestVersionValue on all (should return 3)
# run getVersionValueList on 2 (should return [3, 2, 1])
document_module
=
self
.
getDocumentModule
()
docs
=
{}
docs
[
1
]
=
self
.
createTestDocument
(
reference
=
'TEST'
,
version
=
'002'
,
language
=
'en'
)
docs
[
2
]
=
self
.
createTestDocument
(
reference
=
'TEST'
,
version
=
'002'
,
language
=
'en'
)
...
...
@@ -401,7 +399,6 @@ class TestDocument(TestDocumentMixin):
# reference, version, language
kw
=
{
'portal_type'
:
'Drawing'
}
document1
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document2
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document3
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document4
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document5
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
...
...
@@ -491,44 +488,39 @@ class TestDocument(TestDocumentMixin):
# create docs to be referenced:
# (1) TEST, 002, en
filename
=
'TEST-en-002.odt'
file
=
makeFileUpload
(
filename
)
document1
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document1
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# (2) TEST, 002, fr
as_name
=
'TEST-fr-002.odt'
file
=
makeFileUpload
(
filename
,
as_name
)
document2
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
,
as_name
)
document2
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# (3) TEST, 003, en
as_name
=
'TEST-en-003.odt'
file
=
makeFileUpload
(
filename
,
as_name
)
document3
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
,
as_name
)
document3
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# create docs to contain references in text_content:
# REF, 001, en; "I use reference to look up TEST"
filename
=
'REF-en-001.odt'
file
=
makeFileUpload
(
filename
)
document4
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
# REF, 002, en; "I use reference to look up TEST"
filename
=
'REF-en-002.odt'
file
=
makeFileUpload
(
filename
)
document5
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document5
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# REFLANG, 001, en: "I use reference and language to look up TEST-fr"
filename
=
'REFLANG-en-001.odt'
file
=
makeFileUpload
(
filename
)
document6
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document6
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# REFVER, 001, en: "I use reference and version to look up TEST-002"
filename
=
'REFVER-en-001.odt'
file
=
makeFileUpload
(
filename
)
document7
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document7
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# REFVERLANG, 001, en: "I use reference, version and language to look up TEST-002-en"
filename
=
'REFVERLANG-en-001.odt'
file
=
makeFileUpload
(
filename
)
document8
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document8
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
# the implicit predecessor will find documents by reference.
...
...
@@ -691,8 +683,8 @@ class TestDocument(TestDocumentMixin):
is not draft
"""
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
assertEqual
(
'converting'
,
document
.
getExternalProcessingState
())
self
.
commit
()
...
...
@@ -756,8 +748,8 @@ class TestDocument(TestDocumentMixin):
document.
"""
filename
=
'EmbeddedImage-en-002.odt'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
...
...
@@ -1255,7 +1247,7 @@ class TestDocument(TestDocumentMixin):
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
upload_file
)
self
.
assertEqual
(
'PDF'
,
document
.
getPortalType
())
content_type
,
image_data
=
document
.
convert
(
format
=
'png'
,
_
,
image_data
=
document
.
convert
(
format
=
'png'
,
frame
=
0
,
display
=
'thumbnail'
)
# it's a valid PNG
...
...
@@ -1328,12 +1320,9 @@ class TestDocument(TestDocumentMixin):
def
test_upload_bad_pdf_file
(
self
):
""" Test that pypdf2 handle wrong formatted PDF """
path
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'test_document'
,
'FEUILLE BLANCHE.pdf'
)
file_upload
=
FileUpload
(
path
,
'FEUILLE BLANCHE.pdf'
)
pdf
=
self
.
portal
.
document_module
.
newContent
(
portal_type
=
'PDF'
,
file
=
file_upload
,
file
=
makeFileUpload
(
'FEUILLE BLANCHE.pdf'
)
,
title
=
'Bad PDF'
)
self
.
tic
()
pdf
.
share
()
...
...
@@ -1572,7 +1561,7 @@ class TestDocument(TestDocumentMixin):
.
newContent
(
portal_type
=
web_page_portal_type
)
html_content
=
'<p>%s</p>'
%
string_to_test
web_page
.
edit
(
text_content
=
html_content
)
mime_type
,
pdf_data
=
web_page
.
convert
(
'pdf'
)
_
,
pdf_data
=
web_page
.
convert
(
'pdf'
)
text_content
=
self
.
portal
.
portal_transforms
.
\
convertToData
(
'text/plain'
,
str
(
pdf_data
),
...
...
@@ -1610,7 +1599,7 @@ class TestDocument(TestDocumentMixin):
self
.
tic
()
# convert web_page into odt
mime_type
,
odt_archive
=
web_page
.
convert
(
'odt'
)
_
,
odt_archive
=
web_page
.
convert
(
'odt'
)
builder
=
OOoBuilder
(
odt_archive
)
image_count
=
builder
.
_image_count
failure_message
=
'Expected image not found in ODF zipped archive'
...
...
@@ -1624,11 +1613,11 @@ class TestDocument(TestDocumentMixin):
html_content
=
'<p><img src="%s?format=jpeg&display=%s&quality=75"/></p>'
%
\
(
image_reference
,
image_display
)
web_page
.
edit
(
text_content
=
html_content
)
mime_type
,
odt_archive
=
web_page
.
convert
(
'odt'
)
_
,
odt_archive
=
web_page
.
convert
(
'odt'
)
builder
=
OOoBuilder
(
odt_archive
)
image_count
=
builder
.
_image_count
# compute resized image for comparison
mime
,
converted_image
=
image
.
convert
(
format
=
'jpeg'
,
display
=
image_display
)
_
,
converted_image
=
image
.
convert
(
format
=
'jpeg'
,
display
=
image_display
)
# fetch image from zipped archive content
# then compare with resized ERP5 Image
self
.
assertEqual
(
builder
.
extract
(
'Pictures/%s.jpeg'
%
image_count
),
...
...
@@ -1644,11 +1633,11 @@ class TestDocument(TestDocumentMixin):
html_content
=
'<p><img src="%s?format=png&display=%s&quality=75"/></p>'
%
\
(
image_reference
,
image_display
)
web_page
.
edit
(
text_content
=
html_content
)
mime_type
,
odt_archive
=
web_page
.
convert
(
'odt'
)
_
,
odt_archive
=
web_page
.
convert
(
'odt'
)
builder
=
OOoBuilder
(
odt_archive
)
image_count
=
builder
.
_image_count
# compute resized image for comparison
mime
,
converted_image
=
document
.
convert
(
format
=
'png'
,
_
,
converted_image
=
document
.
convert
(
format
=
'png'
,
display
=
image_display
,
quality
=
75
)
# fetch image from zipped archive content
...
...
@@ -1784,10 +1773,10 @@ class TestDocument(TestDocumentMixin):
self
.
assertTrue
(
'7CcvP/PS8U90/wv0LRSL/rwEwgAAAABJRU5ErkJggg=="'
in
safe_html
)
# now check converted value is stored in cache
format
=
'html'
self
.
assertTrue
(
web_page
.
hasConversion
(
format
=
format
))
format
_
=
'html'
self
.
assertTrue
(
web_page
.
hasConversion
(
format
=
format
_
))
web_page
.
edit
(
text_content
=
None
)
self
.
assertFalse
(
web_page
.
hasConversion
(
format
=
format
))
self
.
assertFalse
(
web_page
.
hasConversion
(
format
=
format
_
))
# test with not well-formed html document
html_content
=
r"""
...
...
@@ -1851,7 +1840,7 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
filename
=
'broken_html.html'
file_object
=
makeFileUpload
(
filename
)
web_page
.
edit
(
file
=
file_object
)
converted
=
web_page
.
convert
(
'html'
)[
1
]
assert
web_page
.
convert
(
'html'
)[
1
]
def
test_safeHTML_impossible_conversion
(
self
):
"""Some html are not parsable.
...
...
@@ -1908,10 +1897,6 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
document
.
edit
(
file
=
upload_file
)
pages_number
=
int
(
document
.
getContentInformation
()[
'Pages'
])
self
.
tic
()
preference_tool
=
getToolByName
(
self
.
portal
,
'portal_preferences'
)
image_size
=
preference_tool
.
getPreferredThumbnailImageHeight
(),
\
preference_tool
.
getPreferredThumbnailImageWidth
()
convert_kw
=
{
'format'
:
'png'
,
'quality'
:
75
,
'display'
:
'thumbnail'
,
...
...
@@ -1957,7 +1942,8 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
instance
.
start
()
# Wait until threads finishing
[
tested
.
join
()
for
tested
in
tested_list
]
for
tested
in
tested_list
:
tested
.
join
()
self
.
tic
()
...
...
@@ -2054,7 +2040,6 @@ return 1
self
.
createRestrictedSecurityHelperScript
()
from
AccessControl
import
Unauthorized
# check that it is not possible to access document in original format
self
.
assertRaises
(
Unauthorized
,
document
.
convert
,
format
=
None
)
# check that it is possible to convert document to text format
...
...
@@ -2168,7 +2153,7 @@ return 1
self
.
tic
()
web_page_document_url
=
'%s/%s'
%
(
self
.
portal
.
absolute_url
(),
web_page_document
.
getRelativeUrl
())
web_page_image_size
,
web_page_file_size
=
self
.
getURLSizeList
(
web_page_document_url
,
**
convert_kw
)
web_page_image_size
,
_
=
self
.
getURLSizeList
(
web_page_document_url
,
**
convert_kw
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
web_page_image_size
)
<=
1
)
# images from same instance accessed by reference and wrong conversion arguments (dispay NOT display)
...
...
@@ -2185,7 +2170,7 @@ return 1
web_page_document
.
setTextContent
(
'''<b> test </b><img src="Embedded-XXX?format=jpeg&dispay=medium&quality=50"/>'''
)
self
.
tic
()
web_page_document_url
=
'%s/%s'
%
(
self
.
portal
.
absolute_url
(),
web_page_document
.
getRelativeUrl
())
web_page_image_size
,
web_page_file_size
=
self
.
getURLSizeList
(
web_page_document_url
,
**
convert_kw
)
web_page_image_size
,
_
=
self
.
getURLSizeList
(
web_page_document_url
,
**
convert_kw
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
web_page_image_size
)
<=
1
)
# external images
...
...
@@ -2198,7 +2183,7 @@ return 1
'''
)
self
.
tic
()
web_page_document_url
=
'%s/%s'
%
(
self
.
portal
.
absolute_url
(),
web_page_document
.
getRelativeUrl
())
web_page_image_size
,
web_page_file_size
=
self
.
getURLSizeList
(
web_page_document_url
,
**
convert_kw
)
web_page_image_size
,
_
=
self
.
getURLSizeList
(
web_page_document_url
,
**
convert_kw
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
web_page_image_size
)
<=
1
)
# XXX: how to simulate the case when web page contains (through reference) link to document for which based conversion failed?
...
...
@@ -2241,33 +2226,33 @@ return 1
for
display
in
(
'nano'
,
'micro'
,
'thumbnail'
,
'xsmall'
,
'small'
,
'medium'
,
'large'
,
'xlarge'
,):
max_tollerance_px
=
1
preffered_size_for_display
=
self
.
getPreferences
(
display
)
for
format
in
(
'png'
,
'jpeg'
,
'gif'
,):
for
format
_
in
(
'png'
,
'jpeg'
,
'gif'
,):
convert_kw
=
{
'display'
:
display
,
\
'format'
:
format
,
\
'format'
:
format
_
,
\
'quality'
:
100
}
# Note: due to some image interpolations it's possssible that we have a difference of max_tollerance_px
# so allow some tollerance which is produced by respective portal_transform command
# any OOo based portal type
ooo_document_image_size
,
ooo_document_file_size
=
self
.
getURLSizeList
(
ooo_document_url
,
**
convert_kw
)
ooo_document_image_size
,
_
=
self
.
getURLSizeList
(
ooo_document_url
,
**
convert_kw
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
ooo_document_image_size
)
<=
max_tollerance_px
)
# PDF
pdf_document_image_size
,
pdf_document_file_size
=
self
.
getURLSizeList
(
pdf_document_url
,
**
convert_kw
)
pdf_document_image_size
,
_
=
self
.
getURLSizeList
(
pdf_document_url
,
**
convert_kw
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
pdf_document_image_size
)
<=
max_tollerance_px
)
# Image
image_document_image_size
,
image_document_file_size
=
self
.
getURLSizeList
(
image_document_url
,
**
convert_kw
)
image_document_image_size
,
_
=
self
.
getURLSizeList
(
image_document_url
,
**
convert_kw
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
image_document_image_size
)
<=
max_tollerance_px
)
self
.
assertTrue
(
abs
(
min
(
preffered_size_for_display
)
-
min
(
image_document_image_size
))
>=
max_tollerance_px
)
cropped_image_document_image_size
,
cropped_image_document_file_size
=
\
cropped_image_document_image_size
,
_
=
\
self
.
getURLSizeList
(
image_document_url
,
crop
=
1
,
**
convert_kw
)
self
.
assertEqual
(
max
(
preffered_size_for_display
),
max
(
cropped_image_document_image_size
))
self
.
assertEqual
(
min
(
preffered_size_for_display
),
min
(
cropped_image_document_image_size
))
# Web Page
web_page_image_size
,
web_page_file_size
=
self
.
getURLSizeList
(
web_page_document_url
,
**
convert_kw
)
web_page_image_size
,
_
=
self
.
getURLSizeList
(
web_page_document_url
,
**
convert_kw
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
web_page_image_size
)
<=
max_tollerance_px
)
...
...
@@ -2379,28 +2364,28 @@ return 1
doc
.
publish
()
self
.
tic
()
default_conversion_failure_image_size
,
default_conversion_failure_image_file_size
=
\
default_conversion_failure_image_size
,
_
=
\
self
.
getURLSizeList
(
'%s/default_conversion_failure_image'
%
self
.
portal
.
absolute_url
())
doc_url
=
'%s/%s'
%
(
self
.
portal
.
absolute_url
(),
doc
.
getPath
())
converted_image_size_70
,
converted_file_size_70
=
self
.
getURLSizeList
(
doc_url
,
\
converted_image_size_70
,
_
=
self
.
getURLSizeList
(
doc_url
,
\
**
{
'format'
:
'png'
,
'quality'
:
70.0
})
self
.
assertTrue
(
doc
.
hasConversion
(
**
{
'format'
:
'png'
,
'quality'
:
70.0
}))
# try with new quality and pre_converted_only now a default image
# with content "No image available" should be returned
failure_image_size
,
failure_file_size
=
self
.
getURLSizeList
(
doc_url
,
\
failure_image_size
,
_
=
self
.
getURLSizeList
(
doc_url
,
\
**
{
'format'
:
'png'
,
'quality'
:
80.0
,
'pre_converted_only'
:
1
})
self
.
assertSameSet
(
failure_image_size
,
default_conversion_failure_image_size
)
converted_image_size_80
,
converted_file_size_80
=
self
.
getURLSizeList
(
doc_url
,
\
converted_image_size_80
,
_
=
self
.
getURLSizeList
(
doc_url
,
\
**
{
'format'
:
'png'
,
'quality'
:
80.0
})
self
.
assertSameSet
(
converted_image_size_80
,
converted_image_size_70
)
self
.
assertTrue
(
doc
.
hasConversion
(
**
{
'format'
:
'png'
,
'quality'
:
80.0
}))
# as conversion is cached we should get it
converted_image_size_80n
,
converted_file_size_80n
=
self
.
getURLSizeList
(
doc_url
,
converted_image_size_80n
,
_
=
self
.
getURLSizeList
(
doc_url
,
**
{
'format'
:
'png'
,
'quality'
:
80.0
,
'pre_converted_only'
:
1
})
self
.
assertSameSet
(
converted_image_size_80n
,
converted_image_size_70
)
...
...
@@ -2442,7 +2427,7 @@ return 1
self
.
tic
()
self
.
assertEqual
(
0
,
len
(
document1
.
Document_getOtherVersionDocumentList
()))
kw
[
'version'
]
=
=
'002'
kw
[
'version'
]
=
'002'
document2
=
portal
.
document_module
.
newContent
(
portal_type
=
"Spreadsheet"
,
**
kw
)
self
.
tic
()
...
...
@@ -2497,8 +2482,6 @@ return 1
"""
Test various cases of contributing to an existing document
"""
request
=
get_request
()
portal
=
self
.
portal
# contribute a document, then make it not editable and check we can not contribute to it
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
kw
=
dict
(
file
=
upload_file
,
synchronous_metadata_discovery
=
True
)
...
...
@@ -2523,8 +2506,6 @@ return 1
"""
Test various cases of merging to an existing document
"""
request
=
get_request
()
portal
=
self
.
portal
# contribute a document, then make it not editable and check we can not contribute to it
kw
=
dict
(
synchronous_metadata_discovery
=
True
)
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
...
...
@@ -2769,8 +2750,6 @@ return 1
""" Test "visible" instances of a doc are auto archived when a new
instance is made "visible" except when they have a future effective date.
"""
portal
=
self
.
portal
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
kw
=
dict
(
file
=
upload_file
,
synchronous_metadata_discovery
=
True
)
document_002
=
self
.
portal
.
Base_contribute
(
**
kw
)
...
...
@@ -2849,7 +2828,7 @@ class TestDocumentWithSecurity(TestDocumentMixin):
def
getTitle
(
self
):
return
"DMS with security"
def
login
(
self
):
def
login
(
self
,
*
args
,
**
kw
):
uf
=
self
.
getPortal
().
acl_users
uf
.
_doAddUser
(
self
.
username
,
''
,
[
'Auditor'
,
'Author'
],
[])
user
=
uf
.
getUserById
(
self
.
username
).
__of__
(
uf
)
...
...
@@ -2895,7 +2874,7 @@ class TestDocumentWithSecurity(TestDocumentMixin):
self
.
assertFalse
(
text_document
.
hasConversion
(
format
=
'pdf'
))
# call pdf conversion, in this way, the result should be cached
mime_type
,
pdf_data
=
text_document
.
convert
(
format
=
'pdf'
)
_
,
pdf_data
=
text_document
.
convert
(
format
=
'pdf'
)
pdf_size
=
len
(
pdf_data
)
...
...
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testDms.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testDms
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5OOo.tests.testDms
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testDms
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
product/ERP5OOo/tests/
testDmsWithFlare.py
→
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.
testDmsWithFlare.py
View file @
227402e3
...
...
@@ -28,7 +28,7 @@
##############################################################################
import
unittest
from
testDms
import
TestDocument
from
erp5.component.test.
testDms
import
TestDocument
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
_getPersistentMemcachedServerDict
...
...
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testDmsWithFlare.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testDmsWithFlare
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5OOo.tests.testDmsWithFlare
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testDmsWithFlare
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
product/ERP5/tests/
testERP5WebWithDms.py
→
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.
testERP5WebWithDms.py
View file @
227402e3
...
...
@@ -68,7 +68,8 @@ gg==''')
def
makeFilePath
(
name
):
return
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'test_data'
,
name
)
from
Products.ERP5
import
tests
return
os
.
path
.
join
(
tests
.
__path__
[
0
],
'test_data'
,
name
)
def
makeFileUpload
(
name
,
as_name
=
None
):
if
as_name
is
None
:
...
...
@@ -1319,7 +1320,7 @@ return True
(
"image/png"
,
""
,
pngmessage
,
png
,
XSMALL_PNG_IMAGE_ICON_DATA
),
(
"image/png"
,
"png"
,
svgtopngmessage
,
svg
,
None
),
]:
__traceback_info__
=
(
content_type
,
"?format="
+
ext
)
__traceback_info__
=
(
content_type
,
"?format="
+
ext
)
# pylint: disable=unused-variable
self
.
assertEqual
(
message
.
get
(
"Content-Location"
),
obj
.
absolute_url
()
+
"?format="
+
ext
,
...
...
@@ -1479,7 +1480,7 @@ return True
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
page
=
web_page_module
.
newContent
(
portal_type
=
"Web Page"
)
text_content_list
=
[
"<p>Hello</p>"
]
for
i
in
range
(
0
,
1000
,
5
):
for
_
in
range
(
0
,
1000
,
5
):
svg
=
image_module
.
newContent
(
portal_type
=
"Image"
)
svg
.
edit
(
content_type
=
"image/svg+xml"
,
data
=
XSMALL_SVG_IMAGE_ICON_DATA
)
svg
.
publish
()
...
...
@@ -1505,7 +1506,7 @@ return True
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
page
=
web_page_module
.
newContent
(
portal_type
=
"Web Page"
)
text_content_list
=
[
"<p>Hello</p>"
]
for
i
in
range
(
0
,
1000
,
5
):
for
_
in
range
(
0
,
1000
,
5
):
svg
=
image_module
.
newContent
(
portal_type
=
"Image"
)
svg
.
edit
(
content_type
=
"image/svg+xml"
,
data
=
XSMALL_SVG_IMAGE_ICON_DATA
)
svg
.
publish
()
...
...
@@ -1603,7 +1604,7 @@ return True
def
test_WebPageImplicitSuccessorValueList
(
self
):
# Test init part
# XXX use web site domain properties instead of @customScript
web_site
=
self
.
setupWebSite
()
self
.
setupWebSite
()
web_page_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Web Page"
)
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
img_list
=
[]
...
...
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testERP5WebWithDms.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testERP5WebWithDms
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5.tests.testERP5WebWithDms
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testERP5WebWithDms
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
product/ERP5OOo/tests/
testOOoConversionCache.py
→
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.
testOOoConversionCache.py
View file @
227402e3
...
...
@@ -31,25 +31,13 @@
import
unittest
from
DateTime
import
DateTime
from
testDms
import
TestDocumentMixin
from
Products.ERP5Type.tests.utils
import
FileUpload
import
os
from
erp5.component.test.testDms
import
TestDocumentMixin
,
makeFileUpload
try
:
import
magic
except
ImportError
:
magic
=
None
def
makeFilePath
(
name
):
return
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'test_document'
,
name
)
def
makeFileUpload
(
name
,
as_name
=
None
):
if
as_name
is
None
:
as_name
=
name
path
=
makeFilePath
(
name
)
return
FileUpload
(
path
,
as_name
)
class
TestDocumentConversionCache
(
TestDocumentMixin
):
"""
Test basic document - related operations
...
...
@@ -71,34 +59,34 @@ class TestDocumentConversionCache(TestDocumentMixin):
def
test_image_conversion
(
self
):
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
format
=
'png'
format
_
=
'png'
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
))
document
.
convert
(
format
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
))
document
.
convert
(
format
_
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
,
display
=
'large'
))
document
.
convert
(
format
,
display
=
'large'
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
,
display
=
'large'
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
,
display
=
'large'
))
document
.
convert
(
format
_
,
display
=
'large'
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
,
display
=
'large'
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
,
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
,
display
=
'large'
,
quality
=
40
))
document
.
convert
(
format
,
display
=
'large'
,
quality
=
40
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
,
document
.
convert
(
format
_
,
display
=
'large'
,
quality
=
40
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
,
display
=
'large'
,
quality
=
40
))
if
magic
is
not
None
:
mime_detector
=
magic
.
Magic
(
mime
=
True
)
self
.
assertEqual
(
mime_detector
.
from_buffer
(
document
.
getConversion
(
format
=
format
)[
1
]),
self
.
assertEqual
(
mime_detector
.
from_buffer
(
document
.
getConversion
(
format
=
format
_
)[
1
]),
'image/png'
)
self
.
assertEqual
(
mime_detector
.
from_buffer
(
document
.
getConversion
(
format
=
format
,
self
.
assertEqual
(
mime_detector
.
from_buffer
(
document
.
getConversion
(
format
=
format
_
,
display
=
'large'
)[
1
]),
'image/png'
)
self
.
assertEqual
(
mime_detector
.
from_buffer
(
document
.
getConversion
(
format
=
format
,
self
.
assertEqual
(
mime_detector
.
from_buffer
(
document
.
getConversion
(
format
=
format
_
,
display
=
'large'
,
quality
=
40
)[
1
]),
'image/png'
)
...
...
@@ -108,69 +96,69 @@ class TestDocumentConversionCache(TestDocumentMixin):
Test Conversion Cache mechanism
"""
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
format_list
=
[
format
for
format
in
document
.
getTargetFormatList
()
if
format
not
in
self
.
failed_format_list
]
format_list
=
[
format
_
for
format_
in
document
.
getTargetFormatList
()
if
format_
not
in
self
.
failed_format_list
]
if
not
format_list
:
self
.
fail
(
'Target format list is empty'
)
#Test Conversion Cache
for
format
in
format_list
:
document
.
convert
(
format
=
format
)
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
_
)
self
.
commit
()
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertEqual
(
DateTime
().
Date
(),
document
.
getConversionDate
(
format
=
format
).
Date
())
self
.
assertTrue
(
document
.
getConversionMd5
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertEqual
(
DateTime
().
Date
(),
document
.
getConversionDate
(
format
=
format
_
).
Date
())
self
.
assertTrue
(
document
.
getConversionMd5
(
format
=
format
_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
document
.
edit
(
title
=
'Foo'
)
self
.
commit
()
#Test Cache is cleared
for
format
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
)
for
format
_
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
_
)
document
.
edit
(
title
=
'Bar'
)
self
.
tic
()
#Test Conversion Cache after editing
for
format
in
format_list
:
document
.
convert
(
format
=
format
)
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
_
)
self
.
commit
()
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
def
test_02_VolatileCacheConversionOfTempObject
(
self
):
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
,
temp_object
=
1
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
,
temp_object
=
1
)
document
.
uploadFile
()
document
.
processFile
()
document
.
convertToBaseFormat
()
format_list
=
[
format
for
format
in
document
.
getTargetFormatList
()
if
format
not
in
self
.
failed_format_list
]
format_list
=
[
format
_
for
format_
in
document
.
getTargetFormatList
()
if
format_
not
in
self
.
failed_format_list
]
if
not
format_list
:
self
.
fail
(
'Target format list is empty'
)
#Test Conversion Cache
for
format
in
format_list
:
document
.
convert
(
format
=
format
)
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
_
)
self
.
commit
()
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertEqual
(
DateTime
().
Date
(),
document
.
getConversionDate
(
format
=
format
).
Date
())
self
.
assertTrue
(
document
.
getConversionMd5
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertEqual
(
DateTime
().
Date
(),
document
.
getConversionDate
(
format
=
format
_
).
Date
())
self
.
assertTrue
(
document
.
getConversionMd5
(
format
=
format
_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
document
.
edit
(
title
=
'Foo'
)
self
.
commit
()
#Test Cache is cleared
for
format
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
)
for
format
_
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
_
)
document
.
edit
(
title
=
'Bar'
)
self
.
tic
()
#Test Conversion Cache after editing
for
format
in
format_list
:
document
.
convert
(
format
=
format
)
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
_
)
self
.
commit
()
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
def
test_03_CacheConversionOfTempObjectIsNotMixed
(
self
):
filename1
=
'TEST-en-002.doc'
...
...
@@ -185,11 +173,11 @@ class TestDocumentConversionCache(TestDocumentMixin):
document2
.
uploadFile
()
document2
.
processFile
()
document2
.
convertToBaseFormat
()
format
=
'pdf'
document1
.
convert
(
format
=
format
)
document2
.
convert
(
format
=
format
)
self
.
assertNotEqual
(
document1
.
getConversion
(
format
=
format
),
document2
.
getConversion
(
format
=
format
))
format
_
=
'pdf'
document1
.
convert
(
format
=
format
_
)
document2
.
convert
(
format
=
format
_
)
self
.
assertNotEqual
(
document1
.
getConversion
(
format
=
format
_
),
document2
.
getConversion
(
format
=
format
_
))
self
.
tic
()
def
test_04_PersistentCacheConversionWithFlare
(
self
):
...
...
@@ -199,44 +187,44 @@ class TestDocumentConversionCache(TestDocumentMixin):
self
.
portal
.
portal_caches
.
clearAllCache
()
self
.
tic
()
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
format_list
=
[
format
for
format
in
document
.
getTargetFormatList
()
\
if
format
not
in
self
.
failed_format_list
]
format_list
=
[
format
_
for
format_
in
document
.
getTargetFormatList
()
\
if
format
_
not
in
self
.
failed_format_list
]
if
not
format_list
:
self
.
fail
(
'Target format list is empty'
)
#Test Conversion Cache
for
format
in
format_list
:
document
.
convert
(
format
=
format
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
_
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format
_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
document
.
edit
(
title
=
'Foo'
)
self
.
commit
()
#Test Cache is cleared
for
format
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
)
for
format
_
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format
_
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
_
)
document
.
edit
(
title
=
'Bar'
)
self
.
tic
()
#Test Conversion Cache after editing
for
format
in
format_list
:
document
.
convert
(
format
=
format
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
_
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format
_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
def
test_05_checksum_conversion
(
self
):
"""
Test Conversion Cache return expected value with checksum
"""
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
...
...
@@ -264,8 +252,8 @@ class TestDocumentConversionCache(TestDocumentMixin):
Check that md5 checksum is well updated when upload a file
"""
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
...
...
@@ -287,11 +275,11 @@ class TestDocumentConversionCache(TestDocumentMixin):
self
.
portal
.
portal_caches
.
clearAllCache
()
self
.
tic
()
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document_id
=
'an id with spaces'
portal_type
=
'Text'
module
=
self
.
portal
.
getDefaultModule
(
portal_type
)
document
=
module
.
newContent
(
id
=
document_id
,
file
=
file
,
document
=
module
.
newContent
(
id
=
document_id
,
file
=
file
_
,
portal_type
=
portal_type
)
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
...
...
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testOOoConversionCache.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testOOoConversionCache
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5OOo.tests.testOOoConversionCache
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testOOoConversionCache
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
product/ERP5OOo/tests/
testOOoConversionServerRetry.py
→
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.
testOOoConversionServerRetry.py
View file @
227402e3
...
...
@@ -26,7 +26,7 @@
##############################################################################
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
from
Products.ERP5OOo.tests
.testDms
import
makeFileUpload
from
erp5.component.test
.testDms
import
makeFileUpload
from
Products.ERP5Form.PreferenceTool
import
Priority
...
...
@@ -63,12 +63,12 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
self
.
retry_count
=
2
def
getDefaultSystemPreference
(
self
):
id
=
'default_system_preference'
id
_
=
'default_system_preference'
tool
=
self
.
getPreferenceTool
()
try
:
pref
=
tool
[
id
]
pref
=
tool
[
id
_
]
except
KeyError
:
pref
=
tool
.
newContent
(
id
,
'System Preference'
)
pref
=
tool
.
newContent
(
id
_
,
'System Preference'
)
pref
.
setPriority
(
Priority
.
SITE
)
pref
.
enable
()
return
pref
...
...
@@ -80,9 +80,9 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
self
.
tic
()
filename
=
'monochrome_sample.tiff'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
document_module
.
newContent
(
portal_type
=
'Text'
)
document
.
edit
(
file
=
file
)
document
.
edit
(
file
=
file
_
)
message
=
document
.
Document_tryToConvertToBaseFormat
()
self
.
assertEqual
(
message
.
count
(
'Error converting document to base format'
),
1
)
...
...
@@ -95,8 +95,8 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
system_pref
.
setPreferredDocumentConversionServerUrlList
([
'https://broken.url'
])
self
.
tic
()
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
message
=
document
.
Document_tryToConvertToBaseFormat
()
self
.
assertEqual
(
message
.
count
(
'broken.url: Connection refused'
),
self
.
retry_count
+
1
)
...
...
@@ -110,8 +110,8 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
system_pref
.
setPreferredOoodocServerTimeout
(
1
)
self
.
tic
()
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
message
=
document
.
Document_tryToConvertToBaseFormat
()
if
'Socket Error: SSLError'
in
message
:
...
...
bt5/erp5_dms/TestTemplateItem/portal_components/test.erp5.testOOoConversionServerRetry.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testOOoConversionServerRetry
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5OOo.tests.testOOoConversionServerRetry
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testOOoConversionServerRetry
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_dms/bt/template_document_id_list
View file @
227402e3
document.erp5.ExternalSource
document.erp5.PDFDocument
\ No newline at end of file
bt5/erp5_dms/bt/template_test_id_list
0 → 100644
View file @
227402e3
test.erp5.testDms
test.erp5.testDmsWithFlare
test.erp5.testERP5WebWithDms
test.erp5.testOOoConversionCache
test.erp5.testOOoConversionServerRetry
\ No newline at end of file
bt5/erp5_dms/bt/test_dependency_list
0 → 100644
View file @
227402e3
erp5_full_text_mroonga_catalog
erp5_ingestion_mysql_innodb_catalog
\ No newline at end of file
product/ERP5OOo/tests/
testDmsWithPreConversion.py
→
bt5/erp5_dms_conversion_catalog/TestTemplateItem/portal_components/test.erp5.
testDmsWithPreConversion.py
View file @
227402e3
...
...
@@ -28,15 +28,13 @@
##############################################################################
import
unittest
from
testDms
import
TestDocument
,
makeFileUpload
from
erp5.component.test.
testDms
import
TestDocument
,
makeFileUpload
class
TestDocumentWithPreConversion
(
TestDocument
):
"""
Test basic document - related operations
with Flare
"""
business_template_list
=
TestDocument
.
business_template_list
+
[
"erp5_dms_conversion_catalog"
]
def
getTitle
(
self
):
return
"DMS with Preconversion"
...
...
bt5/erp5_dms_conversion_catalog/TestTemplateItem/portal_components/test.erp5.testDmsWithPreConversion.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testDmsWithPreConversion
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5OOo.tests.testDmsWithPreConversion
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testDmsWithPreConversion
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_dms_conversion_catalog/bt/template_test_id_list
0 → 100644
View file @
227402e3
test.erp5.testDmsWithPreConversion
\ No newline at end of file
bt5/erp5_dms_conversion_catalog/bt/test_dependency_list
0 → 100644
View file @
227402e3
erp5_full_text_mroonga_catalog
erp5_dms
\ No newline at end of file
bt5/erp5_email_reader/DocumentTemplateItem/portal_components/document.erp5.EmailReader.py
View file @
227402e3
...
...
@@ -30,7 +30,7 @@
from
AccessControl
import
ClassSecurityInfo
from
Products.CMFCore.utils
import
getToolByName
from
Products.ERP5Type
import
Permissions
,
PropertySheet
from
Products.ERP5.D
ocument.ExternalSource
import
ExternalSource
from
erp5.component.d
ocument.ExternalSource
import
ExternalSource
from
Products.ERP5Type.XMLObject
import
XMLObject
from
Products.ERP5Type.Cache
import
transactional_cached
...
...
product/ERP5/tests/
testKM.py
→
bt5/erp5_km/TestTemplateItem/portal_components/test.erp5.
testKM.py
View file @
227402e3
...
...
@@ -31,8 +31,7 @@ import unittest
from
unittest
import
expectedFailure
from
AccessControl.SecurityManagement
import
newSecurityManager
from
Products.ERP5Type.Base
import
TempBase
from
Products.ERP5OOo.tests.testDms
import
makeFileUpload
from
Products.ERP5OOo.tests.testDms
import
TestDocumentMixin
from
erp5.component.test.testDms
import
makeFileUpload
,
TestDocumentMixin
def
_getGadgetInstanceUrlFromKnowledgePad
(
knowledge_pad
,
gadget
):
""" Get Knowledge Box's relative URL specialising a gadget in a Knowledge Pad."""
...
...
@@ -65,7 +64,6 @@ class TestKMMixIn(TestDocumentMixin):
def
afterSetUp
(
self
):
self
.
login
()
portal
=
self
.
getPortal
()
self
.
website
=
self
.
setupWebSite
(
skin_selection_name
=
'KM'
,
container_layout
=
'erp5_km_minimal_layout'
,
content_layout
=
'erp5_km_minimal_content_layout'
,
...
...
@@ -87,7 +85,7 @@ class TestKMMixIn(TestDocumentMixin):
self
.
tic
()
return
website
def
login
(
self
):
def
login
(
self
,
*
args
,
**
kw
):
uf
=
self
.
getPortal
().
acl_users
uf
.
_doAddUser
(
'ivan'
,
''
,
[
'Manager'
],
[])
uf
.
_doAddUser
(
'ERP5TypeTestCase'
,
''
,
[
'Manager'
],
[])
...
...
@@ -230,14 +228,14 @@ class TestKM(TestKMMixIn):
mode
=
'web_section'
,
default_pad_group
=
pad_group
)
self
.
tic
()
base_websection_pad
,
websection_pads
=
\
base_websection_pad
,
_
=
\
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
default_pad_group
=
pad_group
)
# Check stick
websection
.
WebSection_stickKnowledgePad
(
base_websection_pad
.
getRelativeUrl
(),
''
)
self
.
tic
()
current_websection_pad
,
websection_pads
=
\
current_websection_pad
,
_
=
\
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
mode
=
'web_section'
,
default_pad_group
=
pad_group
)
self
.
assertNotEqual
(
base_websection_pad
.
getObject
(),
...
...
@@ -245,7 +243,7 @@ class TestKM(TestKMMixIn):
# check unstick
websection
.
WebSection_unStickKnowledgePad
(
current_websection_pad
.
getRelativeUrl
(),
''
)
current_websection_pad
,
websection_pads
=
\
current_websection_pad
,
_
=
\
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
default_pad_group
=
pad_group
)
self
.
assertEqual
(
base_websection_pad
.
getObject
(),
current_websection_pad
.
getObject
())
...
...
@@ -820,7 +818,6 @@ class TestKM(TestKMMixIn):
def
test_17AddGadgets
(
self
):
""" Check Latest Content Gadgets """
portal
=
self
.
getPortal
()
portal_selections
=
portal
.
portal_selections
km_my_documents_gadget
=
portal
.
portal_gadgets
.
km_my_documents
km_my_contacts_gadget
=
portal
.
portal_gadgets
.
km_my_contacts
...
...
@@ -854,7 +851,6 @@ class TestKM(TestKMMixIn):
# change to KM skins which is defined in erp5_km
self
.
changeSkin
(
'KM'
)
assigned_member_list
=
websection
.
WebSection_searchAssignmentList
(
portal_type
=
'Assignment'
)
self
.
assertEqual
(
0
,
len
(
websection
.
WebSection_searchAssignmentList
(
portal_type
=
'Assignment'
)))
project
=
portal
.
project_module
.
newContent
(
portal_type
=
'Project'
,
\
id
=
'test_project'
)
...
...
@@ -868,7 +864,7 @@ class TestKM(TestKMMixIn):
person
=
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
)
assignment
=
person
.
newContent
(
portal_type
=
'Assignment'
,
destination_project
=
project
.
getRelativeUrl
())
another_assignment
=
person
.
newContent
(
portal_type
=
'Assignment'
,
person
.
newContent
(
portal_type
=
'Assignment'
,
destination_project
=
another_project
.
getRelativeUrl
())
assignment
.
open
()
self
.
tic
()
...
...
@@ -941,7 +937,6 @@ class TestKMSearch(TestKMMixIn):
See http://www.erp5.org/HowToUseSphinxSE
"""
self
.
setupSphinx
()
portal
=
self
.
portal
website
=
self
.
portal
.
web_site_module
.
km_test_web_site
self
.
changeSkin
(
'KM'
)
# in search mode we do NOT access a ZODB object
...
...
@@ -1006,54 +1001,46 @@ class TestKMSearch(TestKMMixIn):
self
.
setupSphinx
()
self
.
changeSkin
(
'KM'
)
portal
=
self
.
portal
website
=
self
.
portal
.
web_site_module
.
km_test_web_site
web_page
=
self
.
web_page
def
sqlresult_to_document_list
(
result
):
return
[
i
.
getObject
()
for
i
in
result
]
# create docs to be referenced:
# create docs to be referenced:
# (1) TEST, 002, en
filename
=
'TEST-en-002.odt'
file
=
makeFileUpload
(
filename
)
document1
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file_
)
# (2) TEST, 002, fr
as_name
=
'TEST-fr-002.odt'
file
=
makeFileUpload
(
filename
,
as_name
)
document2
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
,
as_name
)
document2
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# (3) TEST, 003, en
as_name
=
'TEST-en-003.odt'
file
=
makeFileUpload
(
filename
,
as_name
)
document3
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
,
as_name
)
document3
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# create docs to contain references in text_content:
# REF, 001, en; "I use reference to look up TEST"
filename
=
'REF-en-001.odt'
file
=
makeFileUpload
(
filename
)
document4
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
# REF, 002, en; "I use reference to look up TEST"
filename
=
'REF-en-002.odt'
file
=
makeFileUpload
(
filename
)
document5
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
file
_
=
makeFileUpload
(
filename
)
document5
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# REFLANG, 001, en: "I use reference and language to look up TEST-fr"
filename
=
'REFLANG-en-001.odt'
file
=
makeFileUpload
(
filename
)
document6
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
#
filename = 'REFLANG-en-001.odt'
#
file = makeFileUpload(filename)
#
document6 = self.portal.portal_contributions.newContent(file=file)
# REFVER, 001, en: "I use reference and version to look up TEST-002"
filename
=
'REFVER-en-001.odt'
file
=
makeFileUpload
(
filename
)
document7
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
#
filename = 'REFVER-en-001.odt'
#
file = makeFileUpload(filename)
#
document7 = self.portal.portal_contributions.newContent(file=file)
# REFVERLANG, 001, en: "I use reference, version and language to look up TEST-002-en"
filename
=
'REFVERLANG-en-001.odt'
file
=
makeFileUpload
(
filename
)
document8
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
#
filename = 'REFVERLANG-en-001.odt'
#
file = makeFileUpload(filename)
#
document8 = self.portal.portal_contributions.newContent(file=file)
self
.
tic
()
# the implicit predecessor will find documents by reference.
...
...
bt5/erp5_km/TestTemplateItem/portal_components/test.erp5.testKM.xml
0 → 100644
View file @
227402e3
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Test Component"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testKM
</string>
</value>
</item>
<item>
<key>
<string>
default_source_reference
</string>
</key>
<value>
<string>
Products.ERP5.tests.testKM
</string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
test.erp5.testKM
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Test Component
</string>
</value>
</item>
<item>
<key>
<string>
sid
</string>
</key>
<value>
<none/>
</value>
</item>
<item>
<key>
<string>
text_content_error_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
text_content_warning_message
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
version
</string>
</key>
<value>
<string>
erp5
</string>
</value>
</item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_log
</string>
</key>
<value>
<list>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
validate
</string>
</value>
</item>
<item>
<key>
<string>
validation_state
</string>
</key>
<value>
<string>
validated
</string>
</value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_km/bt/template_test_id_list
0 → 100644
View file @
227402e3
test.erp5.testKM
\ No newline at end of file
bt5/erp5_km/bt/test_dependency_list
0 → 100644
View file @
227402e3
erp5_full_text_mroonga_catalog
erp5_core_proxy_field_legacy
erp5_jquery
erp5_jquery_ui
erp5_ingestion_mysql_innodb_catalog
erp5_ingestion
erp5_pdm
erp5_simulation
erp5_trade
erp5_project
erp5_crm
\ No newline at end of file
bt5/erp5_pdf_merge/TestTemplateItem/portal_components/test.erp5.testERP5PDFMerge.py
View file @
227402e3
...
...
@@ -27,7 +27,7 @@
import
warnings
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
from
Products.ERP5OOo.tests
.testDms
import
makeFileUpload
from
erp5.component.test
.testDms
import
makeFileUpload
from
Products.ERP5Type
import
Utils
class
TestERP5PDFMerge
(
ERP5TypeTestCase
):
...
...
bt5/erp5_run_my_doc/TestTemplateItem/portal_components/test.erp5.testRunMyDoc.py
View file @
227402e3
...
...
@@ -27,7 +27,7 @@
##############################################################################
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
from
Products.ERP5OOo.tests
.testDms
import
makeFileUpload
from
erp5.component.test
.testDms
import
makeFileUpload
from
time
import
time
class
TestRunMyDoc
(
ERP5TypeTestCase
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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