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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Mikolaï Krol
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
Hide 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 @@
...
@@ -32,7 +32,7 @@
import
unittest
import
unittest
from
AccessControl.SecurityManagement
import
newSecurityManager
from
AccessControl.SecurityManagement
import
newSecurityManager
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
from
Products.ERP5OOo.tests
.testDms
import
makeFileUpload
from
erp5.component.test
.testDms
import
makeFileUpload
class
TestERP5Discussion
(
ERP5TypeTestCase
):
class
TestERP5Discussion
(
ERP5TypeTestCase
):
...
@@ -59,7 +59,7 @@ class TestERP5Discussion(ERP5TypeTestCase):
...
@@ -59,7 +59,7 @@ class TestERP5Discussion(ERP5TypeTestCase):
'erp5_jquery'
,
'erp5_jquery'
,
'erp5_discussion'
,
)
'erp5_discussion'
,
)
def
login
(
self
):
def
login
(
self
,
*
args
,
**
kw
):
uf
=
self
.
getPortal
().
acl_users
uf
=
self
.
getPortal
().
acl_users
uf
.
_doAddUser
(
self
.
manager_username
,
self
.
manager_password
,
[
'Manager'
],
[])
uf
.
_doAddUser
(
self
.
manager_username
,
self
.
manager_password
,
[
'Manager'
],
[])
user
=
uf
.
getUserById
(
self
.
manager_username
).
__of__
(
uf
)
user
=
uf
.
getUserById
(
self
.
manager_username
).
__of__
(
uf
)
...
@@ -87,7 +87,7 @@ class TestERP5Discussion(ERP5TypeTestCase):
...
@@ -87,7 +87,7 @@ class TestERP5Discussion(ERP5TypeTestCase):
def
test_01_createDiscussionThread
(
self
):
def
test_01_createDiscussionThread
(
self
):
"""Create a new discussion thread"""
"""Create a new discussion thread"""
self
.
stepCreateThread
()
;
self
.
stepCreateThread
()
self
.
tic
()
self
.
tic
()
def
test_02_createDiscussionPost
(
self
):
def
test_02_createDiscussionPost
(
self
):
...
@@ -143,8 +143,8 @@ class TestERP5Discussion(ERP5TypeTestCase):
...
@@ -143,8 +143,8 @@ class TestERP5Discussion(ERP5TypeTestCase):
self
.
assertEqual
(
0
,
len
(
attachment_list
))
self
.
assertEqual
(
0
,
len
(
attachment_list
))
# check attachment creation
# check attachment creation
file
=
makeFileUpload
(
'TEST-en-002.doc'
)
file
_
=
makeFileUpload
(
'TEST-en-002.doc'
)
web_section1
.
WebSection_createNewDiscussionThread
(
'test1-new-with-attachment'
,
'test1 body'
,
file
=
file
)
web_section1
.
WebSection_createNewDiscussionThread
(
'test1-new-with-attachment'
,
'test1 body'
,
file
=
file
_
)
discussion_thread
,
=
[
x
for
x
in
self
.
portal
.
discussion_thread_module
.
objectValues
()
\
discussion_thread
,
=
[
x
for
x
in
self
.
portal
.
discussion_thread_module
.
objectValues
()
\
if
x
.
getId
()
not
in
discussion_thread_id_set
]
if
x
.
getId
()
not
in
discussion_thread_id_set
]
discussion_thread_id_set
.
add
(
discussion_thread
.
getId
())
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
...
@@ -57,7 +57,6 @@ from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
from
Products.ERP5Type.tests.utils
import
FileUpload
from
Products.ERP5Type.tests.utils
import
FileUpload
from
Products.ERP5Type.tests.utils
import
DummyLocalizer
from
Products.ERP5Type.tests.utils
import
DummyLocalizer
from
Products.ERP5OOo.OOoUtils
import
OOoBuilder
from
Products.ERP5OOo.OOoUtils
import
OOoBuilder
from
Products.CMFCore.utils
import
getToolByName
from
AccessControl.SecurityManagement
import
newSecurityManager
from
AccessControl.SecurityManagement
import
newSecurityManager
from
AccessControl
import
getSecurityManager
from
AccessControl
import
getSecurityManager
from
Products.ERP5.Document.Document
import
NotConvertedError
from
Products.ERP5.Document.Document
import
NotConvertedError
...
@@ -77,12 +76,13 @@ from ZTUtils import make_query
...
@@ -77,12 +76,13 @@ from ZTUtils import make_query
QUIET
=
0
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})"
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}))?"
REFERENCE_REGULAR_EXPRESSION
=
"(?P<reference>[A-Z]{3,10})(-(?P<language>[a-z]{2}))?(-(?P<version>[0-9]{3}))?"
def
makeFilePath
(
name
):
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
):
def
makeFileUpload
(
name
,
as_name
=
None
):
if
as_name
is
None
:
if
as_name
is
None
:
...
@@ -120,14 +120,14 @@ class TestDocumentMixin(ERP5TypeTestCase):
...
@@ -120,14 +120,14 @@ class TestDocumentMixin(ERP5TypeTestCase):
def
setSystemPreference
(
self
):
def
setSystemPreference
(
self
):
pref
=
self
.
getDefaultSystemPreference
()
pref
=
self
.
getDefaultSystemPreference
()
id
=
self
.
__class__
.
__name__
id
_
=
self
.
__class__
.
__name__
if
pref
.
getPreferredConversionCacheFactory
()
!=
id
:
if
pref
.
getPreferredConversionCacheFactory
()
!=
id
_
:
try
:
try
:
self
.
portal
.
portal_caches
[
id
]
self
.
portal
.
portal_caches
[
id
_
]
except
KeyError
:
except
KeyError
:
self
.
setCacheFactory
(
self
.
setCacheFactory
(
self
.
portal
.
portal_caches
.
newContent
(
id
,
'Cache Factory'
))
self
.
portal
.
portal_caches
.
newContent
(
id
_
,
'Cache Factory'
))
pref
.
setPreferredConversionCacheFactory
(
id
)
pref
.
setPreferredConversionCacheFactory
(
id
_
)
pref
.
setPreferredDocumentFilenameRegularExpression
(
FILENAME_REGULAR_EXPRESSION
)
pref
.
setPreferredDocumentFilenameRegularExpression
(
FILENAME_REGULAR_EXPRESSION
)
pref
.
setPreferredDocumentReferenceRegularExpression
(
REFERENCE_REGULAR_EXPRESSION
)
pref
.
setPreferredDocumentReferenceRegularExpression
(
REFERENCE_REGULAR_EXPRESSION
)
...
@@ -209,13 +209,13 @@ class TestDocument(TestDocumentMixin):
...
@@ -209,13 +209,13 @@ class TestDocument(TestDocumentMixin):
doctext
.
setLanguage
(
language
)
doctext
.
setLanguage
(
language
)
return
doctext
return
doctext
def
getDocument
(
self
,
id
):
def
getDocument
(
self
,
id
_
):
"""
"""
Returns a document with given ID in the
Returns a document with given ID in the
document module.
document module.
"""
"""
document_module
=
self
.
portal
.
document_module
document_module
=
self
.
portal
.
document_module
return
getattr
(
document_module
,
id
)
return
getattr
(
document_module
,
id
_
)
def
getPreferences
(
self
,
image_display
):
def
getPreferences
(
self
,
image_display
):
preference_tool
=
self
.
portal
.
portal_preferences
preference_tool
=
self
.
portal
.
portal_preferences
...
@@ -228,10 +228,10 @@ class TestDocument(TestDocumentMixin):
...
@@ -228,10 +228,10 @@ class TestDocument(TestDocumentMixin):
def
getURLSizeList
(
self
,
uri
,
**
kw
):
def
getURLSizeList
(
self
,
uri
,
**
kw
):
# __ac=RVJQNVR5cGVUZXN0Q2FzZTo%3D is encoded ERP5TypeTestCase with empty password
# __ac=RVJQNVR5cGVUZXN0Q2FzZTo%3D is encoded ERP5TypeTestCase with empty password
url
=
'%s?%s&__ac=%s'
%
(
uri
,
make_query
(
kw
),
'RVJQNVR5cGVUZXN0Q2FzZTo%3D'
)
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
)
infile
=
urllib
.
urlopen
(
url
)
# save as file with proper incl. format filename (for some reasons PIL uses this info)
# 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"
)
f
=
open
(
filename
,
"w"
)
image_data
=
infile
.
read
()
image_data
=
infile
.
read
()
f
.
write
(
image_data
)
f
.
write
(
image_data
)
...
@@ -245,8 +245,7 @@ class TestDocument(TestDocumentMixin):
...
@@ -245,8 +245,7 @@ class TestDocument(TestDocumentMixin):
except
ImportError
:
except
ImportError
:
identify_output
=
Popen
([
'identify'
,
filename
],
identify_output
=
Popen
([
'identify'
,
filename
],
stdout
=
PIPE
).
communicate
()[
0
]
stdout
=
PIPE
).
communicate
()[
0
]
image_size
=
tuple
(
map
(
lambda
x
:
int
(
x
),
image_size
=
tuple
([
int
(
x
)
for
x
in
identify_output
.
split
()[
2
].
split
(
'x'
)])
identify_output
.
split
()[
2
].
split
(
'x'
)))
os
.
remove
(
filename
)
os
.
remove
(
filename
)
return
image_size
,
file_size
return
image_size
,
file_size
...
@@ -277,20 +276,20 @@ class TestDocument(TestDocumentMixin):
...
@@ -277,20 +276,20 @@ class TestDocument(TestDocumentMixin):
# the same document should now have revision 4 (because it should have done mergeRevision)
# the same document should now have revision 4 (because it should have done mergeRevision)
# getRevisionList should return (1, 2, 3, 4)
# getRevisionList should return (1, 2, 3, 4)
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document_url
=
document
.
getRelativeUrl
()
def
getTestDocument
():
def
getTestDocument
():
return
self
.
portal
.
restrictedTraverse
(
document_url
)
return
self
.
portal
.
restrictedTraverse
(
document_url
)
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'1'
)
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'1'
)
getTestDocument
().
edit
(
file
=
file
)
getTestDocument
().
edit
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'2'
)
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'2'
)
getTestDocument
().
edit
(
title
=
'Hey Joe'
)
getTestDocument
().
edit
(
title
=
'Hey Joe'
)
self
.
tic
()
self
.
tic
()
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'3'
)
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'3'
)
another_document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file_
)
self
.
tic
()
self
.
tic
()
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'4'
)
self
.
assertEqual
(
getTestDocument
().
getRevision
(),
'4'
)
self
.
assertEqual
(
getTestDocument
().
getRevisionList
(),
[
'1'
,
'2'
,
'3'
,
'4'
])
self
.
assertEqual
(
getTestDocument
().
getRevisionList
(),
[
'1'
,
'2'
,
'3'
,
'4'
])
...
@@ -307,7 +306,6 @@ class TestDocument(TestDocumentMixin):
...
@@ -307,7 +306,6 @@ class TestDocument(TestDocumentMixin):
# run isVersionUnique on 1, 2, 3 (should return True)
# run isVersionUnique on 1, 2, 3 (should return True)
# run getLatestVersionValue on all (should return 3)
# run getLatestVersionValue on all (should return 3)
# run getVersionValueList on 2 (should return [3, 2, 1])
# run getVersionValueList on 2 (should return [3, 2, 1])
document_module
=
self
.
getDocumentModule
()
docs
=
{}
docs
=
{}
docs
[
1
]
=
self
.
createTestDocument
(
reference
=
'TEST'
,
version
=
'002'
,
language
=
'en'
)
docs
[
1
]
=
self
.
createTestDocument
(
reference
=
'TEST'
,
version
=
'002'
,
language
=
'en'
)
docs
[
2
]
=
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):
...
@@ -401,7 +399,6 @@ class TestDocument(TestDocumentMixin):
# reference, version, language
# reference, version, language
kw
=
{
'portal_type'
:
'Drawing'
}
kw
=
{
'portal_type'
:
'Drawing'
}
document1
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document1
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document2
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document3
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document3
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document4
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document4
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document5
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
document5
=
self
.
portal
.
document_module
.
newContent
(
**
kw
)
...
@@ -491,44 +488,39 @@ class TestDocument(TestDocumentMixin):
...
@@ -491,44 +488,39 @@ class TestDocument(TestDocumentMixin):
# create docs to be referenced:
# create docs to be referenced:
# (1) TEST, 002, en
# (1) TEST, 002, en
filename
=
'TEST-en-002.odt'
filename
=
'TEST-en-002.odt'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document1
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document1
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# (2) TEST, 002, fr
# (2) TEST, 002, fr
as_name
=
'TEST-fr-002.odt'
as_name
=
'TEST-fr-002.odt'
file
=
makeFileUpload
(
filename
,
as_name
)
file
_
=
makeFileUpload
(
filename
,
as_name
)
document2
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document2
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# (3) TEST, 003, en
# (3) TEST, 003, en
as_name
=
'TEST-en-003.odt'
as_name
=
'TEST-en-003.odt'
file
=
makeFileUpload
(
filename
,
as_name
)
file
_
=
makeFileUpload
(
filename
,
as_name
)
document3
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document3
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# create docs to contain references in text_content:
# 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"
# REF, 002, en; "I use reference to look up TEST"
filename
=
'REF-en-002.odt'
filename
=
'REF-en-002.odt'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document5
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document5
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# REFLANG, 001, en: "I use reference and language to look up TEST-fr"
# REFLANG, 001, en: "I use reference and language to look up TEST-fr"
filename
=
'REFLANG-en-001.odt'
filename
=
'REFLANG-en-001.odt'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document6
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document6
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# REFVER, 001, en: "I use reference and version to look up TEST-002"
# REFVER, 001, en: "I use reference and version to look up TEST-002"
filename
=
'REFVER-en-001.odt'
filename
=
'REFVER-en-001.odt'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document7
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document7
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# REFVERLANG, 001, en: "I use reference, version and language to look up TEST-002-en"
# REFVERLANG, 001, en: "I use reference, version and language to look up TEST-002-en"
filename
=
'REFVERLANG-en-001.odt'
filename
=
'REFVERLANG-en-001.odt'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document8
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document8
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
# the implicit predecessor will find documents by reference.
# the implicit predecessor will find documents by reference.
...
@@ -691,8 +683,8 @@ class TestDocument(TestDocumentMixin):
...
@@ -691,8 +683,8 @@ class TestDocument(TestDocumentMixin):
is not draft
is not draft
"""
"""
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
assertEqual
(
'converting'
,
document
.
getExternalProcessingState
())
self
.
assertEqual
(
'converting'
,
document
.
getExternalProcessingState
())
self
.
commit
()
self
.
commit
()
...
@@ -756,8 +748,8 @@ class TestDocument(TestDocumentMixin):
...
@@ -756,8 +748,8 @@ class TestDocument(TestDocumentMixin):
document.
document.
"""
"""
filename
=
'EmbeddedImage-en-002.odt'
filename
=
'EmbeddedImage-en-002.odt'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
...
@@ -1255,9 +1247,9 @@ class TestDocument(TestDocumentMixin):
...
@@ -1255,9 +1247,9 @@ class TestDocument(TestDocumentMixin):
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
upload_file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
upload_file
)
self
.
assertEqual
(
'PDF'
,
document
.
getPortalType
())
self
.
assertEqual
(
'PDF'
,
document
.
getPortalType
())
content_type
,
image_data
=
document
.
convert
(
format
=
'png'
,
_
,
image_data
=
document
.
convert
(
format
=
'png'
,
frame
=
0
,
frame
=
0
,
display
=
'thumbnail'
)
display
=
'thumbnail'
)
# it's a valid PNG
# it's a valid PNG
self
.
assertEqual
(
'PNG'
,
image_data
[
1
:
4
])
self
.
assertEqual
(
'PNG'
,
image_data
[
1
:
4
])
...
@@ -1328,12 +1320,9 @@ class TestDocument(TestDocumentMixin):
...
@@ -1328,12 +1320,9 @@ class TestDocument(TestDocumentMixin):
def
test_upload_bad_pdf_file
(
self
):
def
test_upload_bad_pdf_file
(
self
):
""" Test that pypdf2 handle wrong formatted PDF """
""" 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
(
pdf
=
self
.
portal
.
document_module
.
newContent
(
portal_type
=
'PDF'
,
portal_type
=
'PDF'
,
file
=
file_upload
,
file
=
makeFileUpload
(
'FEUILLE BLANCHE.pdf'
)
,
title
=
'Bad PDF'
)
title
=
'Bad PDF'
)
self
.
tic
()
self
.
tic
()
pdf
.
share
()
pdf
.
share
()
...
@@ -1572,7 +1561,7 @@ class TestDocument(TestDocumentMixin):
...
@@ -1572,7 +1561,7 @@ class TestDocument(TestDocumentMixin):
.
newContent
(
portal_type
=
web_page_portal_type
)
.
newContent
(
portal_type
=
web_page_portal_type
)
html_content
=
'<p>%s</p>'
%
string_to_test
html_content
=
'<p>%s</p>'
%
string_to_test
web_page
.
edit
(
text_content
=
html_content
)
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
.
\
text_content
=
self
.
portal
.
portal_transforms
.
\
convertToData
(
'text/plain'
,
convertToData
(
'text/plain'
,
str
(
pdf_data
),
str
(
pdf_data
),
...
@@ -1610,7 +1599,7 @@ class TestDocument(TestDocumentMixin):
...
@@ -1610,7 +1599,7 @@ class TestDocument(TestDocumentMixin):
self
.
tic
()
self
.
tic
()
# convert web_page into odt
# convert web_page into odt
mime_type
,
odt_archive
=
web_page
.
convert
(
'odt'
)
_
,
odt_archive
=
web_page
.
convert
(
'odt'
)
builder
=
OOoBuilder
(
odt_archive
)
builder
=
OOoBuilder
(
odt_archive
)
image_count
=
builder
.
_image_count
image_count
=
builder
.
_image_count
failure_message
=
'Expected image not found in ODF zipped archive'
failure_message
=
'Expected image not found in ODF zipped archive'
...
@@ -1624,11 +1613,11 @@ class TestDocument(TestDocumentMixin):
...
@@ -1624,11 +1613,11 @@ class TestDocument(TestDocumentMixin):
html_content
=
'<p><img src="%s?format=jpeg&display=%s&quality=75"/></p>'
%
\
html_content
=
'<p><img src="%s?format=jpeg&display=%s&quality=75"/></p>'
%
\
(
image_reference
,
image_display
)
(
image_reference
,
image_display
)
web_page
.
edit
(
text_content
=
html_content
)
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
)
builder
=
OOoBuilder
(
odt_archive
)
image_count
=
builder
.
_image_count
image_count
=
builder
.
_image_count
# compute resized image for comparison
# 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
# fetch image from zipped archive content
# then compare with resized ERP5 Image
# then compare with resized ERP5 Image
self
.
assertEqual
(
builder
.
extract
(
'Pictures/%s.jpeg'
%
image_count
),
self
.
assertEqual
(
builder
.
extract
(
'Pictures/%s.jpeg'
%
image_count
),
...
@@ -1644,11 +1633,11 @@ class TestDocument(TestDocumentMixin):
...
@@ -1644,11 +1633,11 @@ class TestDocument(TestDocumentMixin):
html_content
=
'<p><img src="%s?format=png&display=%s&quality=75"/></p>'
%
\
html_content
=
'<p><img src="%s?format=png&display=%s&quality=75"/></p>'
%
\
(
image_reference
,
image_display
)
(
image_reference
,
image_display
)
web_page
.
edit
(
text_content
=
html_content
)
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
)
builder
=
OOoBuilder
(
odt_archive
)
image_count
=
builder
.
_image_count
image_count
=
builder
.
_image_count
# compute resized image for comparison
# compute resized image for comparison
mime
,
converted_image
=
document
.
convert
(
format
=
'png'
,
_
,
converted_image
=
document
.
convert
(
format
=
'png'
,
display
=
image_display
,
display
=
image_display
,
quality
=
75
)
quality
=
75
)
# fetch image from zipped archive content
# fetch image from zipped archive content
...
@@ -1784,10 +1773,10 @@ class TestDocument(TestDocumentMixin):
...
@@ -1784,10 +1773,10 @@ class TestDocument(TestDocumentMixin):
self
.
assertTrue
(
'7CcvP/PS8U90/wv0LRSL/rwEwgAAAABJRU5ErkJggg=="'
in
safe_html
)
self
.
assertTrue
(
'7CcvP/PS8U90/wv0LRSL/rwEwgAAAABJRU5ErkJggg=="'
in
safe_html
)
# now check converted value is stored in cache
# now check converted value is stored in cache
format
=
'html'
format
_
=
'html'
self
.
assertTrue
(
web_page
.
hasConversion
(
format
=
format
))
self
.
assertTrue
(
web_page
.
hasConversion
(
format
=
format
_
))
web_page
.
edit
(
text_content
=
None
)
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
# test with not well-formed html document
html_content
=
r"""
html_content
=
r"""
...
@@ -1851,7 +1840,7 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
...
@@ -1851,7 +1840,7 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
filename
=
'broken_html.html'
filename
=
'broken_html.html'
file_object
=
makeFileUpload
(
filename
)
file_object
=
makeFileUpload
(
filename
)
web_page
.
edit
(
file
=
file_object
)
web_page
.
edit
(
file
=
file_object
)
converted
=
web_page
.
convert
(
'html'
)[
1
]
assert
web_page
.
convert
(
'html'
)[
1
]
def
test_safeHTML_impossible_conversion
(
self
):
def
test_safeHTML_impossible_conversion
(
self
):
"""Some html are not parsable.
"""Some html are not parsable.
...
@@ -1908,10 +1897,6 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
...
@@ -1908,10 +1897,6 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
document
.
edit
(
file
=
upload_file
)
document
.
edit
(
file
=
upload_file
)
pages_number
=
int
(
document
.
getContentInformation
()[
'Pages'
])
pages_number
=
int
(
document
.
getContentInformation
()[
'Pages'
])
self
.
tic
()
self
.
tic
()
preference_tool
=
getToolByName
(
self
.
portal
,
'portal_preferences'
)
image_size
=
preference_tool
.
getPreferredThumbnailImageHeight
(),
\
preference_tool
.
getPreferredThumbnailImageWidth
()
convert_kw
=
{
'format'
:
'png'
,
convert_kw
=
{
'format'
:
'png'
,
'quality'
:
75
,
'quality'
:
75
,
'display'
:
'thumbnail'
,
'display'
:
'thumbnail'
,
...
@@ -1957,7 +1942,8 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
...
@@ -1957,7 +1942,8 @@ document.write('<sc'+'ript type="text/javascript" src="http://somosite.bg/utb.ph
instance
.
start
()
instance
.
start
()
# Wait until threads finishing
# Wait until threads finishing
[
tested
.
join
()
for
tested
in
tested_list
]
for
tested
in
tested_list
:
tested
.
join
()
self
.
tic
()
self
.
tic
()
...
@@ -2054,7 +2040,6 @@ return 1
...
@@ -2054,7 +2040,6 @@ return 1
self
.
createRestrictedSecurityHelperScript
()
self
.
createRestrictedSecurityHelperScript
()
from
AccessControl
import
Unauthorized
# check that it is not possible to access document in original format
# check that it is not possible to access document in original format
self
.
assertRaises
(
Unauthorized
,
document
.
convert
,
format
=
None
)
self
.
assertRaises
(
Unauthorized
,
document
.
convert
,
format
=
None
)
# check that it is possible to convert document to text format
# check that it is possible to convert document to text format
...
@@ -2168,7 +2153,7 @@ return 1
...
@@ -2168,7 +2153,7 @@ return 1
self
.
tic
()
self
.
tic
()
web_page_document_url
=
'%s/%s'
%
(
self
.
portal
.
absolute_url
(),
web_page_document
.
getRelativeUrl
())
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
)
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)
# images from same instance accessed by reference and wrong conversion arguments (dispay NOT display)
...
@@ -2185,7 +2170,7 @@ return 1
...
@@ -2185,7 +2170,7 @@ return 1
web_page_document
.
setTextContent
(
'''<b> test </b><img src="Embedded-XXX?format=jpeg&dispay=medium&quality=50"/>'''
)
web_page_document
.
setTextContent
(
'''<b> test </b><img src="Embedded-XXX?format=jpeg&dispay=medium&quality=50"/>'''
)
self
.
tic
()
self
.
tic
()
web_page_document_url
=
'%s/%s'
%
(
self
.
portal
.
absolute_url
(),
web_page_document
.
getRelativeUrl
())
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
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
web_page_image_size
)
<=
1
)
# external images
# external images
...
@@ -2198,7 +2183,7 @@ return 1
...
@@ -2198,7 +2183,7 @@ return 1
'''
)
'''
)
self
.
tic
()
self
.
tic
()
web_page_document_url
=
'%s/%s'
%
(
self
.
portal
.
absolute_url
(),
web_page_document
.
getRelativeUrl
())
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
)
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?
# 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
...
@@ -2241,33 +2226,33 @@ return 1
for
display
in
(
'nano'
,
'micro'
,
'thumbnail'
,
'xsmall'
,
'small'
,
'medium'
,
'large'
,
'xlarge'
,):
for
display
in
(
'nano'
,
'micro'
,
'thumbnail'
,
'xsmall'
,
'small'
,
'medium'
,
'large'
,
'xlarge'
,):
max_tollerance_px
=
1
max_tollerance_px
=
1
preffered_size_for_display
=
self
.
getPreferences
(
display
)
preffered_size_for_display
=
self
.
getPreferences
(
display
)
for
format
in
(
'png'
,
'jpeg'
,
'gif'
,):
for
format
_
in
(
'png'
,
'jpeg'
,
'gif'
,):
convert_kw
=
{
'display'
:
display
,
\
convert_kw
=
{
'display'
:
display
,
\
'format'
:
format
,
\
'format'
:
format
_
,
\
'quality'
:
100
}
'quality'
:
100
}
# Note: due to some image interpolations it's possssible that we have a difference of max_tollerance_px
# 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
# so allow some tollerance which is produced by respective portal_transform command
# any OOo based portal type
# 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
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
ooo_document_image_size
)
<=
max_tollerance_px
)
# PDF
# 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
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
pdf_document_image_size
)
<=
max_tollerance_px
)
# Image
# 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
(
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
)
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
.
getURLSizeList
(
image_document_url
,
crop
=
1
,
**
convert_kw
)
self
.
assertEqual
(
max
(
preffered_size_for_display
),
max
(
cropped_image_document_image_size
))
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
))
self
.
assertEqual
(
min
(
preffered_size_for_display
),
min
(
cropped_image_document_image_size
))
# Web Page
# 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
)
self
.
assertTrue
(
max
(
preffered_size_for_display
)
-
max
(
web_page_image_size
)
<=
max_tollerance_px
)
...
@@ -2379,28 +2364,28 @@ return 1
...
@@ -2379,28 +2364,28 @@ return 1
doc
.
publish
()
doc
.
publish
()
self
.
tic
()
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
())
self
.
getURLSizeList
(
'%s/default_conversion_failure_image'
%
self
.
portal
.
absolute_url
())
doc_url
=
'%s/%s'
%
(
self
.
portal
.
absolute_url
(),
doc
.
getPath
())
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
})
**
{
'format'
:
'png'
,
'quality'
:
70.0
})
self
.
assertTrue
(
doc
.
hasConversion
(
**
{
'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
# try with new quality and pre_converted_only now a default image
# with content "No image available" should be returned
# 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
})
**
{
'format'
:
'png'
,
'quality'
:
80.0
,
'pre_converted_only'
:
1
})
self
.
assertSameSet
(
failure_image_size
,
default_conversion_failure_image_size
)
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
})
**
{
'format'
:
'png'
,
'quality'
:
80.0
})
self
.
assertSameSet
(
converted_image_size_80
,
converted_image_size_70
)
self
.
assertSameSet
(
converted_image_size_80
,
converted_image_size_70
)
self
.
assertTrue
(
doc
.
hasConversion
(
**
{
'format'
:
'png'
,
'quality'
:
80.0
}))
self
.
assertTrue
(
doc
.
hasConversion
(
**
{
'format'
:
'png'
,
'quality'
:
80.0
}))
# as conversion is cached we should get it
# 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
})
**
{
'format'
:
'png'
,
'quality'
:
80.0
,
'pre_converted_only'
:
1
})
self
.
assertSameSet
(
converted_image_size_80n
,
converted_image_size_70
)
self
.
assertSameSet
(
converted_image_size_80n
,
converted_image_size_70
)
...
@@ -2442,7 +2427,7 @@ return 1
...
@@ -2442,7 +2427,7 @@ return 1
self
.
tic
()
self
.
tic
()
self
.
assertEqual
(
0
,
len
(
document1
.
Document_getOtherVersionDocumentList
()))
self
.
assertEqual
(
0
,
len
(
document1
.
Document_getOtherVersionDocumentList
()))
kw
[
'version'
]
=
=
'002'
kw
[
'version'
]
=
'002'
document2
=
portal
.
document_module
.
newContent
(
portal_type
=
"Spreadsheet"
,
**
kw
)
document2
=
portal
.
document_module
.
newContent
(
portal_type
=
"Spreadsheet"
,
**
kw
)
self
.
tic
()
self
.
tic
()
...
@@ -2497,8 +2482,6 @@ return 1
...
@@ -2497,8 +2482,6 @@ return 1
"""
"""
Test various cases of contributing to an existing document
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
# contribute a document, then make it not editable and check we can not contribute to it
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
kw
=
dict
(
file
=
upload_file
,
synchronous_metadata_discovery
=
True
)
kw
=
dict
(
file
=
upload_file
,
synchronous_metadata_discovery
=
True
)
...
@@ -2523,8 +2506,6 @@ return 1
...
@@ -2523,8 +2506,6 @@ return 1
"""
"""
Test various cases of merging to an existing document
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
# contribute a document, then make it not editable and check we can not contribute to it
kw
=
dict
(
synchronous_metadata_discovery
=
True
)
kw
=
dict
(
synchronous_metadata_discovery
=
True
)
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
...
@@ -2769,8 +2750,6 @@ return 1
...
@@ -2769,8 +2750,6 @@ return 1
""" Test "visible" instances of a doc are auto archived when a new
""" Test "visible" instances of a doc are auto archived when a new
instance is made "visible" except when they have a future effective date.
instance is made "visible" except when they have a future effective date.
"""
"""
portal
=
self
.
portal
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
upload_file
=
makeFileUpload
(
'TEST-en-002.doc'
)
kw
=
dict
(
file
=
upload_file
,
synchronous_metadata_discovery
=
True
)
kw
=
dict
(
file
=
upload_file
,
synchronous_metadata_discovery
=
True
)
document_002
=
self
.
portal
.
Base_contribute
(
**
kw
)
document_002
=
self
.
portal
.
Base_contribute
(
**
kw
)
...
@@ -2849,7 +2828,7 @@ class TestDocumentWithSecurity(TestDocumentMixin):
...
@@ -2849,7 +2828,7 @@ class TestDocumentWithSecurity(TestDocumentMixin):
def
getTitle
(
self
):
def
getTitle
(
self
):
return
"DMS with security"
return
"DMS with security"
def
login
(
self
):
def
login
(
self
,
*
args
,
**
kw
):
uf
=
self
.
getPortal
().
acl_users
uf
=
self
.
getPortal
().
acl_users
uf
.
_doAddUser
(
self
.
username
,
''
,
[
'Auditor'
,
'Author'
],
[])
uf
.
_doAddUser
(
self
.
username
,
''
,
[
'Auditor'
,
'Author'
],
[])
user
=
uf
.
getUserById
(
self
.
username
).
__of__
(
uf
)
user
=
uf
.
getUserById
(
self
.
username
).
__of__
(
uf
)
...
@@ -2895,7 +2874,7 @@ class TestDocumentWithSecurity(TestDocumentMixin):
...
@@ -2895,7 +2874,7 @@ class TestDocumentWithSecurity(TestDocumentMixin):
self
.
assertFalse
(
text_document
.
hasConversion
(
format
=
'pdf'
))
self
.
assertFalse
(
text_document
.
hasConversion
(
format
=
'pdf'
))
# call pdf conversion, in this way, the result should be cached
# 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
)
pdf_size
=
len
(
pdf_data
)
...
@@ -2986,4 +2965,4 @@ def test_suite():
...
@@ -2986,4 +2965,4 @@ def test_suite():
return
suite
return
suite
# vim: syntax=python shiftwidth=2
# vim: syntax=python shiftwidth=2
\ No newline at end of file
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 @@
...
@@ -28,7 +28,7 @@
##############################################################################
##############################################################################
import
unittest
import
unittest
from
testDms
import
TestDocument
from
erp5.component.test.
testDms
import
TestDocument
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
_getPersistentMemcachedServerDict
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==''')
...
@@ -68,7 +68,8 @@ gg==''')
def
makeFilePath
(
name
):
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
):
def
makeFileUpload
(
name
,
as_name
=
None
):
if
as_name
is
None
:
if
as_name
is
None
:
...
@@ -1319,7 +1320,7 @@ return True
...
@@ -1319,7 +1320,7 @@ return True
(
"image/png"
,
""
,
pngmessage
,
png
,
XSMALL_PNG_IMAGE_ICON_DATA
),
(
"image/png"
,
""
,
pngmessage
,
png
,
XSMALL_PNG_IMAGE_ICON_DATA
),
(
"image/png"
,
"png"
,
svgtopngmessage
,
svg
,
None
),
(
"image/png"
,
"png"
,
svgtopngmessage
,
svg
,
None
),
]:
]:
__traceback_info__
=
(
content_type
,
"?format="
+
ext
)
__traceback_info__
=
(
content_type
,
"?format="
+
ext
)
# pylint: disable=unused-variable
self
.
assertEqual
(
self
.
assertEqual
(
message
.
get
(
"Content-Location"
),
message
.
get
(
"Content-Location"
),
obj
.
absolute_url
()
+
"?format="
+
ext
,
obj
.
absolute_url
()
+
"?format="
+
ext
,
...
@@ -1479,7 +1480,7 @@ return True
...
@@ -1479,7 +1480,7 @@ return True
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
page
=
web_page_module
.
newContent
(
portal_type
=
"Web Page"
)
page
=
web_page_module
.
newContent
(
portal_type
=
"Web Page"
)
text_content_list
=
[
"<p>Hello</p>"
]
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
=
image_module
.
newContent
(
portal_type
=
"Image"
)
svg
.
edit
(
content_type
=
"image/svg+xml"
,
data
=
XSMALL_SVG_IMAGE_ICON_DATA
)
svg
.
edit
(
content_type
=
"image/svg+xml"
,
data
=
XSMALL_SVG_IMAGE_ICON_DATA
)
svg
.
publish
()
svg
.
publish
()
...
@@ -1505,7 +1506,7 @@ return True
...
@@ -1505,7 +1506,7 @@ return True
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
page
=
web_page_module
.
newContent
(
portal_type
=
"Web Page"
)
page
=
web_page_module
.
newContent
(
portal_type
=
"Web Page"
)
text_content_list
=
[
"<p>Hello</p>"
]
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
=
image_module
.
newContent
(
portal_type
=
"Image"
)
svg
.
edit
(
content_type
=
"image/svg+xml"
,
data
=
XSMALL_SVG_IMAGE_ICON_DATA
)
svg
.
edit
(
content_type
=
"image/svg+xml"
,
data
=
XSMALL_SVG_IMAGE_ICON_DATA
)
svg
.
publish
()
svg
.
publish
()
...
@@ -1603,7 +1604,7 @@ return True
...
@@ -1603,7 +1604,7 @@ return True
def
test_WebPageImplicitSuccessorValueList
(
self
):
def
test_WebPageImplicitSuccessorValueList
(
self
):
# Test init part
# Test init part
# XXX use web site domain properties instead of @customScript
# 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"
)
web_page_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Web Page"
)
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
image_module
=
self
.
portal
.
getDefaultModule
(
portal_type
=
"Image"
)
img_list
=
[]
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 @@
...
@@ -31,25 +31,13 @@
import
unittest
import
unittest
from
DateTime
import
DateTime
from
DateTime
import
DateTime
from
testDms
import
TestDocumentMixin
from
erp5.component.test.testDms
import
TestDocumentMixin
,
makeFileUpload
from
Products.ERP5Type.tests.utils
import
FileUpload
import
os
try
:
try
:
import
magic
import
magic
except
ImportError
:
except
ImportError
:
magic
=
None
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
):
class
TestDocumentConversionCache
(
TestDocumentMixin
):
"""
"""
Test basic document - related operations
Test basic document - related operations
...
@@ -71,34 +59,34 @@ class TestDocumentConversionCache(TestDocumentMixin):
...
@@ -71,34 +59,34 @@ class TestDocumentConversionCache(TestDocumentMixin):
def
test_image_conversion
(
self
):
def
test_image_conversion
(
self
):
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
format
=
'png'
format
_
=
'png'
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
))
document
.
convert
(
format
)
document
.
convert
(
format
_
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
,
display
=
'large'
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
,
display
=
'large'
))
document
.
convert
(
format
,
display
=
'large'
)
document
.
convert
(
format
_
,
display
=
'large'
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
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'
,
display
=
'large'
,
quality
=
40
))
quality
=
40
))
document
.
convert
(
format
,
display
=
'large'
,
quality
=
40
)
document
.
convert
(
format
_
,
display
=
'large'
,
quality
=
40
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
,
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
,
display
=
'large'
,
display
=
'large'
,
quality
=
40
))
quality
=
40
))
if
magic
is
not
None
:
if
magic
is
not
None
:
mime_detector
=
magic
.
Magic
(
mime
=
True
)
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'
)
'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
]),
display
=
'large'
)[
1
]),
'image/png'
)
'image/png'
)
self
.
assertEqual
(
mime_detector
.
from_buffer
(
document
.
getConversion
(
format
=
format
,
self
.
assertEqual
(
mime_detector
.
from_buffer
(
document
.
getConversion
(
format
=
format
_
,
display
=
'large'
,
display
=
'large'
,
quality
=
40
)[
1
]),
quality
=
40
)[
1
]),
'image/png'
)
'image/png'
)
...
@@ -108,69 +96,69 @@ class TestDocumentConversionCache(TestDocumentMixin):
...
@@ -108,69 +96,69 @@ class TestDocumentConversionCache(TestDocumentMixin):
Test Conversion Cache mechanism
Test Conversion Cache mechanism
"""
"""
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document_url
=
document
.
getRelativeUrl
()
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
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
:
if
not
format_list
:
self
.
fail
(
'Target format list is empty'
)
self
.
fail
(
'Target format list is empty'
)
#Test Conversion Cache
#Test Conversion Cache
for
format
in
format_list
:
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
)
document
.
convert
(
format
=
format
_
)
self
.
commit
()
self
.
commit
()
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertEqual
(
DateTime
().
Date
(),
document
.
getConversionDate
(
format
=
format
).
Date
())
self
.
assertEqual
(
DateTime
().
Date
(),
document
.
getConversionDate
(
format
=
format
_
).
Date
())
self
.
assertTrue
(
document
.
getConversionMd5
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionMd5
(
format
=
format
_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
document
.
edit
(
title
=
'Foo'
)
document
.
edit
(
title
=
'Foo'
)
self
.
commit
()
self
.
commit
()
#Test Cache is cleared
#Test Cache is cleared
for
format
in
format_list
:
for
format
_
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
)
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
_
)
document
.
edit
(
title
=
'Bar'
)
document
.
edit
(
title
=
'Bar'
)
self
.
tic
()
self
.
tic
()
#Test Conversion Cache after editing
#Test Conversion Cache after editing
for
format
in
format_list
:
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
)
document
.
convert
(
format
=
format
_
)
self
.
commit
()
self
.
commit
()
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
def
test_02_VolatileCacheConversionOfTempObject
(
self
):
def
test_02_VolatileCacheConversionOfTempObject
(
self
):
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
,
temp_object
=
1
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
,
temp_object
=
1
)
document
.
uploadFile
()
document
.
uploadFile
()
document
.
processFile
()
document
.
processFile
()
document
.
convertToBaseFormat
()
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
:
if
not
format_list
:
self
.
fail
(
'Target format list is empty'
)
self
.
fail
(
'Target format list is empty'
)
#Test Conversion Cache
#Test Conversion Cache
for
format
in
format_list
:
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
)
document
.
convert
(
format
=
format
_
)
self
.
commit
()
self
.
commit
()
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertEqual
(
DateTime
().
Date
(),
document
.
getConversionDate
(
format
=
format
).
Date
())
self
.
assertEqual
(
DateTime
().
Date
(),
document
.
getConversionDate
(
format
=
format
_
).
Date
())
self
.
assertTrue
(
document
.
getConversionMd5
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionMd5
(
format
=
format
_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
document
.
edit
(
title
=
'Foo'
)
document
.
edit
(
title
=
'Foo'
)
self
.
commit
()
self
.
commit
()
#Test Cache is cleared
#Test Cache is cleared
for
format
in
format_list
:
for
format
_
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
)
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
_
)
document
.
edit
(
title
=
'Bar'
)
document
.
edit
(
title
=
'Bar'
)
self
.
tic
()
self
.
tic
()
#Test Conversion Cache after editing
#Test Conversion Cache after editing
for
format
in
format_list
:
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
)
document
.
convert
(
format
=
format
_
)
self
.
commit
()
self
.
commit
()
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
'Cache Storage failed for %s'
%
(
format
))
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
def
test_03_CacheConversionOfTempObjectIsNotMixed
(
self
):
def
test_03_CacheConversionOfTempObjectIsNotMixed
(
self
):
filename1
=
'TEST-en-002.doc'
filename1
=
'TEST-en-002.doc'
...
@@ -185,11 +173,11 @@ class TestDocumentConversionCache(TestDocumentMixin):
...
@@ -185,11 +173,11 @@ class TestDocumentConversionCache(TestDocumentMixin):
document2
.
uploadFile
()
document2
.
uploadFile
()
document2
.
processFile
()
document2
.
processFile
()
document2
.
convertToBaseFormat
()
document2
.
convertToBaseFormat
()
format
=
'pdf'
format
_
=
'pdf'
document1
.
convert
(
format
=
format
)
document1
.
convert
(
format
=
format
_
)
document2
.
convert
(
format
=
format
)
document2
.
convert
(
format
=
format
_
)
self
.
assertNotEqual
(
document1
.
getConversion
(
format
=
format
),
self
.
assertNotEqual
(
document1
.
getConversion
(
format
=
format
_
),
document2
.
getConversion
(
format
=
format
))
document2
.
getConversion
(
format
=
format
_
))
self
.
tic
()
self
.
tic
()
def
test_04_PersistentCacheConversionWithFlare
(
self
):
def
test_04_PersistentCacheConversionWithFlare
(
self
):
...
@@ -199,44 +187,44 @@ class TestDocumentConversionCache(TestDocumentMixin):
...
@@ -199,44 +187,44 @@ class TestDocumentConversionCache(TestDocumentMixin):
self
.
portal
.
portal_caches
.
clearAllCache
()
self
.
portal
.
portal_caches
.
clearAllCache
()
self
.
tic
()
self
.
tic
()
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document_url
=
document
.
getRelativeUrl
()
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
format_list
=
[
format
for
format
in
document
.
getTargetFormatList
()
\
format_list
=
[
format
_
for
format_
in
document
.
getTargetFormatList
()
\
if
format
not
in
self
.
failed_format_list
]
if
format
_
not
in
self
.
failed_format_list
]
if
not
format_list
:
if
not
format_list
:
self
.
fail
(
'Target format list is empty'
)
self
.
fail
(
'Target format list is empty'
)
#Test Conversion Cache
#Test Conversion Cache
for
format
in
format_list
:
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
)
document
.
convert
(
format
=
format
_
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format
))
'Cache Storage failed for %s'
%
(
format
_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
document
.
edit
(
title
=
'Foo'
)
document
.
edit
(
title
=
'Foo'
)
self
.
commit
()
self
.
commit
()
#Test Cache is cleared
#Test Cache is cleared
for
format
in
format_list
:
for
format
_
in
format_list
:
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
),
self
.
assertFalse
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format
))
'Cache Storage failed for %s'
%
(
format
_
))
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
)
self
.
assertRaises
(
KeyError
,
document
.
getConversionSize
,
format
=
format
_
)
document
.
edit
(
title
=
'Bar'
)
document
.
edit
(
title
=
'Bar'
)
self
.
tic
()
self
.
tic
()
#Test Conversion Cache after editing
#Test Conversion Cache after editing
for
format
in
format_list
:
for
format
_
in
format_list
:
document
.
convert
(
format
=
format
)
document
.
convert
(
format
=
format
_
)
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
),
self
.
assertTrue
(
document
.
hasConversion
(
format
=
format
_
),
'Cache Storage failed for %s'
%
(
format
))
'Cache Storage failed for %s'
%
(
format
_
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
))
self
.
assertTrue
(
document
.
getConversionSize
(
format
=
format
_
))
def
test_05_checksum_conversion
(
self
):
def
test_05_checksum_conversion
(
self
):
"""
"""
Test Conversion Cache return expected value with checksum
Test Conversion Cache return expected value with checksum
"""
"""
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document_url
=
document
.
getRelativeUrl
()
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
...
@@ -264,8 +252,8 @@ class TestDocumentConversionCache(TestDocumentMixin):
...
@@ -264,8 +252,8 @@ class TestDocumentConversionCache(TestDocumentMixin):
Check that md5 checksum is well updated when upload a file
Check that md5 checksum is well updated when upload a file
"""
"""
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
self
.
tic
()
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
document_url
=
document
.
getRelativeUrl
()
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
document
=
self
.
portal
.
restrictedTraverse
(
document_url
)
...
@@ -287,11 +275,11 @@ class TestDocumentConversionCache(TestDocumentMixin):
...
@@ -287,11 +275,11 @@ class TestDocumentConversionCache(TestDocumentMixin):
self
.
portal
.
portal_caches
.
clearAllCache
()
self
.
portal
.
portal_caches
.
clearAllCache
()
self
.
tic
()
self
.
tic
()
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document_id
=
'an id with spaces'
document_id
=
'an id with spaces'
portal_type
=
'Text'
portal_type
=
'Text'
module
=
self
.
portal
.
getDefaultModule
(
portal_type
)
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
)
portal_type
=
portal_type
)
self
.
tic
()
self
.
tic
()
document_url
=
document
.
getRelativeUrl
()
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 @@
...
@@ -26,7 +26,7 @@
##############################################################################
##############################################################################
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
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
from
Products.ERP5Form.PreferenceTool
import
Priority
...
@@ -63,12 +63,12 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
...
@@ -63,12 +63,12 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
self
.
retry_count
=
2
self
.
retry_count
=
2
def
getDefaultSystemPreference
(
self
):
def
getDefaultSystemPreference
(
self
):
id
=
'default_system_preference'
id
_
=
'default_system_preference'
tool
=
self
.
getPreferenceTool
()
tool
=
self
.
getPreferenceTool
()
try
:
try
:
pref
=
tool
[
id
]
pref
=
tool
[
id
_
]
except
KeyError
:
except
KeyError
:
pref
=
tool
.
newContent
(
id
,
'System Preference'
)
pref
=
tool
.
newContent
(
id
_
,
'System Preference'
)
pref
.
setPriority
(
Priority
.
SITE
)
pref
.
setPriority
(
Priority
.
SITE
)
pref
.
enable
()
pref
.
enable
()
return
pref
return
pref
...
@@ -80,9 +80,9 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
...
@@ -80,9 +80,9 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
self
.
tic
()
self
.
tic
()
filename
=
'monochrome_sample.tiff'
filename
=
'monochrome_sample.tiff'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
document_module
.
newContent
(
portal_type
=
'Text'
)
document
=
self
.
portal
.
document_module
.
newContent
(
portal_type
=
'Text'
)
document
.
edit
(
file
=
file
)
document
.
edit
(
file
=
file
_
)
message
=
document
.
Document_tryToConvertToBaseFormat
()
message
=
document
.
Document_tryToConvertToBaseFormat
()
self
.
assertEqual
(
message
.
count
(
'Error converting document to base format'
),
1
)
self
.
assertEqual
(
message
.
count
(
'Error converting document to base format'
),
1
)
...
@@ -95,8 +95,8 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
...
@@ -95,8 +95,8 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
system_pref
.
setPreferredDocumentConversionServerUrlList
([
'https://broken.url'
])
system_pref
.
setPreferredDocumentConversionServerUrlList
([
'https://broken.url'
])
self
.
tic
()
self
.
tic
()
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
message
=
document
.
Document_tryToConvertToBaseFormat
()
message
=
document
.
Document_tryToConvertToBaseFormat
()
self
.
assertEqual
(
message
.
count
(
'broken.url: Connection refused'
),
self
.
retry_count
+
1
)
self
.
assertEqual
(
message
.
count
(
'broken.url: Connection refused'
),
self
.
retry_count
+
1
)
...
@@ -110,8 +110,8 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
...
@@ -110,8 +110,8 @@ class TestOOoConversionServerRetry(ERP5TypeTestCase):
system_pref
.
setPreferredOoodocServerTimeout
(
1
)
system_pref
.
setPreferredOoodocServerTimeout
(
1
)
self
.
tic
()
self
.
tic
()
filename
=
'TEST-en-002.doc'
filename
=
'TEST-en-002.doc'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
message
=
document
.
Document_tryToConvertToBaseFormat
()
message
=
document
.
Document_tryToConvertToBaseFormat
()
if
'Socket Error: SSLError'
in
message
:
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
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 @@
...
@@ -28,15 +28,13 @@
##############################################################################
##############################################################################
import
unittest
import
unittest
from
testDms
import
TestDocument
,
makeFileUpload
from
erp5.component.test.
testDms
import
TestDocument
,
makeFileUpload
class
TestDocumentWithPreConversion
(
TestDocument
):
class
TestDocumentWithPreConversion
(
TestDocument
):
"""
"""
Test basic document - related operations
Test basic document - related operations
with Flare
with Flare
"""
"""
business_template_list
=
TestDocument
.
business_template_list
+
[
"erp5_dms_conversion_catalog"
]
def
getTitle
(
self
):
def
getTitle
(
self
):
return
"DMS with Preconversion"
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 @@
...
@@ -30,7 +30,7 @@
from
AccessControl
import
ClassSecurityInfo
from
AccessControl
import
ClassSecurityInfo
from
Products.CMFCore.utils
import
getToolByName
from
Products.CMFCore.utils
import
getToolByName
from
Products.ERP5Type
import
Permissions
,
PropertySheet
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.XMLObject
import
XMLObject
from
Products.ERP5Type.Cache
import
transactional_cached
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
...
@@ -31,8 +31,7 @@ import unittest
from
unittest
import
expectedFailure
from
unittest
import
expectedFailure
from
AccessControl.SecurityManagement
import
newSecurityManager
from
AccessControl.SecurityManagement
import
newSecurityManager
from
Products.ERP5Type.Base
import
TempBase
from
Products.ERP5Type.Base
import
TempBase
from
Products.ERP5OOo.tests.testDms
import
makeFileUpload
from
erp5.component.test.testDms
import
makeFileUpload
,
TestDocumentMixin
from
Products.ERP5OOo.tests.testDms
import
TestDocumentMixin
def
_getGadgetInstanceUrlFromKnowledgePad
(
knowledge_pad
,
gadget
):
def
_getGadgetInstanceUrlFromKnowledgePad
(
knowledge_pad
,
gadget
):
""" Get Knowledge Box's relative URL specialising a gadget in a Knowledge Pad."""
""" Get Knowledge Box's relative URL specialising a gadget in a Knowledge Pad."""
...
@@ -65,7 +64,6 @@ class TestKMMixIn(TestDocumentMixin):
...
@@ -65,7 +64,6 @@ class TestKMMixIn(TestDocumentMixin):
def
afterSetUp
(
self
):
def
afterSetUp
(
self
):
self
.
login
()
self
.
login
()
portal
=
self
.
getPortal
()
self
.
website
=
self
.
setupWebSite
(
skin_selection_name
=
'KM'
,
self
.
website
=
self
.
setupWebSite
(
skin_selection_name
=
'KM'
,
container_layout
=
'erp5_km_minimal_layout'
,
container_layout
=
'erp5_km_minimal_layout'
,
content_layout
=
'erp5_km_minimal_content_layout'
,
content_layout
=
'erp5_km_minimal_content_layout'
,
...
@@ -87,7 +85,7 @@ class TestKMMixIn(TestDocumentMixin):
...
@@ -87,7 +85,7 @@ class TestKMMixIn(TestDocumentMixin):
self
.
tic
()
self
.
tic
()
return
website
return
website
def
login
(
self
):
def
login
(
self
,
*
args
,
**
kw
):
uf
=
self
.
getPortal
().
acl_users
uf
=
self
.
getPortal
().
acl_users
uf
.
_doAddUser
(
'ivan'
,
''
,
[
'Manager'
],
[])
uf
.
_doAddUser
(
'ivan'
,
''
,
[
'Manager'
],
[])
uf
.
_doAddUser
(
'ERP5TypeTestCase'
,
''
,
[
'Manager'
],
[])
uf
.
_doAddUser
(
'ERP5TypeTestCase'
,
''
,
[
'Manager'
],
[])
...
@@ -230,14 +228,14 @@ class TestKM(TestKMMixIn):
...
@@ -230,14 +228,14 @@ class TestKM(TestKMMixIn):
mode
=
'web_section'
,
mode
=
'web_section'
,
default_pad_group
=
pad_group
)
default_pad_group
=
pad_group
)
self
.
tic
()
self
.
tic
()
base_websection_pad
,
websection_pads
=
\
base_websection_pad
,
_
=
\
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
default_pad_group
=
pad_group
)
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
default_pad_group
=
pad_group
)
# Check stick
# Check stick
websection
.
WebSection_stickKnowledgePad
(
websection
.
WebSection_stickKnowledgePad
(
base_websection_pad
.
getRelativeUrl
(),
''
)
base_websection_pad
.
getRelativeUrl
(),
''
)
self
.
tic
()
self
.
tic
()
current_websection_pad
,
websection_pads
=
\
current_websection_pad
,
_
=
\
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
mode
=
'web_section'
,
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
mode
=
'web_section'
,
default_pad_group
=
pad_group
)
default_pad_group
=
pad_group
)
self
.
assertNotEqual
(
base_websection_pad
.
getObject
(),
self
.
assertNotEqual
(
base_websection_pad
.
getObject
(),
...
@@ -245,7 +243,7 @@ class TestKM(TestKMMixIn):
...
@@ -245,7 +243,7 @@ class TestKM(TestKMMixIn):
# check unstick
# check unstick
websection
.
WebSection_unStickKnowledgePad
(
current_websection_pad
.
getRelativeUrl
(),
''
)
websection
.
WebSection_unStickKnowledgePad
(
current_websection_pad
.
getRelativeUrl
(),
''
)
current_websection_pad
,
websection_pads
=
\
current_websection_pad
,
_
=
\
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
default_pad_group
=
pad_group
)
websection
.
ERP5Site_getActiveKnowledgePadForUser
(
default_pad_group
=
pad_group
)
self
.
assertEqual
(
base_websection_pad
.
getObject
(),
self
.
assertEqual
(
base_websection_pad
.
getObject
(),
current_websection_pad
.
getObject
())
current_websection_pad
.
getObject
())
...
@@ -820,7 +818,6 @@ class TestKM(TestKMMixIn):
...
@@ -820,7 +818,6 @@ class TestKM(TestKMMixIn):
def
test_17AddGadgets
(
self
):
def
test_17AddGadgets
(
self
):
""" Check Latest Content Gadgets """
""" Check Latest Content Gadgets """
portal
=
self
.
getPortal
()
portal
=
self
.
getPortal
()
portal_selections
=
portal
.
portal_selections
km_my_documents_gadget
=
portal
.
portal_gadgets
.
km_my_documents
km_my_documents_gadget
=
portal
.
portal_gadgets
.
km_my_documents
km_my_contacts_gadget
=
portal
.
portal_gadgets
.
km_my_contacts
km_my_contacts_gadget
=
portal
.
portal_gadgets
.
km_my_contacts
...
@@ -854,7 +851,6 @@ class TestKM(TestKMMixIn):
...
@@ -854,7 +851,6 @@ class TestKM(TestKMMixIn):
# change to KM skins which is defined in erp5_km
# change to KM skins which is defined in erp5_km
self
.
changeSkin
(
'KM'
)
self
.
changeSkin
(
'KM'
)
assigned_member_list
=
websection
.
WebSection_searchAssignmentList
(
portal_type
=
'Assignment'
)
self
.
assertEqual
(
0
,
len
(
websection
.
WebSection_searchAssignmentList
(
portal_type
=
'Assignment'
)))
self
.
assertEqual
(
0
,
len
(
websection
.
WebSection_searchAssignmentList
(
portal_type
=
'Assignment'
)))
project
=
portal
.
project_module
.
newContent
(
portal_type
=
'Project'
,
\
project
=
portal
.
project_module
.
newContent
(
portal_type
=
'Project'
,
\
id
=
'test_project'
)
id
=
'test_project'
)
...
@@ -868,8 +864,8 @@ class TestKM(TestKMMixIn):
...
@@ -868,8 +864,8 @@ class TestKM(TestKMMixIn):
person
=
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
)
person
=
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
)
assignment
=
person
.
newContent
(
portal_type
=
'Assignment'
,
assignment
=
person
.
newContent
(
portal_type
=
'Assignment'
,
destination_project
=
project
.
getRelativeUrl
())
destination_project
=
project
.
getRelativeUrl
())
another_assignment
=
person
.
newContent
(
portal_type
=
'Assignment'
,
person
.
newContent
(
portal_type
=
'Assignment'
,
destination_project
=
another_project
.
getRelativeUrl
())
destination_project
=
another_project
.
getRelativeUrl
())
assignment
.
open
()
assignment
.
open
()
self
.
tic
()
self
.
tic
()
...
@@ -941,7 +937,6 @@ class TestKMSearch(TestKMMixIn):
...
@@ -941,7 +937,6 @@ class TestKMSearch(TestKMMixIn):
See http://www.erp5.org/HowToUseSphinxSE
See http://www.erp5.org/HowToUseSphinxSE
"""
"""
self
.
setupSphinx
()
self
.
setupSphinx
()
portal
=
self
.
portal
website
=
self
.
portal
.
web_site_module
.
km_test_web_site
website
=
self
.
portal
.
web_site_module
.
km_test_web_site
self
.
changeSkin
(
'KM'
)
self
.
changeSkin
(
'KM'
)
# in search mode we do NOT access a ZODB object
# in search mode we do NOT access a ZODB object
...
@@ -1006,54 +1001,46 @@ class TestKMSearch(TestKMMixIn):
...
@@ -1006,54 +1001,46 @@ class TestKMSearch(TestKMMixIn):
self
.
setupSphinx
()
self
.
setupSphinx
()
self
.
changeSkin
(
'KM'
)
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
):
def
sqlresult_to_document_list
(
result
):
return
[
i
.
getObject
()
for
i
in
result
]
return
[
i
.
getObject
()
for
i
in
result
]
# create docs to be referenced:
# create docs to be referenced:
# create docs to be referenced:
# (1) TEST, 002, en
# (1) TEST, 002, en
filename
=
'TEST-en-002.odt'
filename
=
'TEST-en-002.odt'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document1
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file_
)
# (2) TEST, 002, fr
# (2) TEST, 002, fr
as_name
=
'TEST-fr-002.odt'
as_name
=
'TEST-fr-002.odt'
file
=
makeFileUpload
(
filename
,
as_name
)
file
_
=
makeFileUpload
(
filename
,
as_name
)
document2
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document2
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# (3) TEST, 003, en
# (3) TEST, 003, en
as_name
=
'TEST-en-003.odt'
as_name
=
'TEST-en-003.odt'
file
=
makeFileUpload
(
filename
,
as_name
)
file
_
=
makeFileUpload
(
filename
,
as_name
)
document3
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document3
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# create docs to contain references in text_content:
# 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"
# REF, 002, en; "I use reference to look up TEST"
filename
=
'REF-en-002.odt'
filename
=
'REF-en-002.odt'
file
=
makeFileUpload
(
filename
)
file
_
=
makeFileUpload
(
filename
)
document5
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
document5
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
_
)
# REFLANG, 001, en: "I use reference and language to look up TEST-fr"
# REFLANG, 001, en: "I use reference and language to look up TEST-fr"
filename
=
'REFLANG-en-001.odt'
#
filename = 'REFLANG-en-001.odt'
file
=
makeFileUpload
(
filename
)
#
file = makeFileUpload(filename)
document6
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
#
document6 = self.portal.portal_contributions.newContent(file=file)
# REFVER, 001, en: "I use reference and version to look up TEST-002"
# REFVER, 001, en: "I use reference and version to look up TEST-002"
filename
=
'REFVER-en-001.odt'
#
filename = 'REFVER-en-001.odt'
file
=
makeFileUpload
(
filename
)
#
file = makeFileUpload(filename)
document7
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
#
document7 = self.portal.portal_contributions.newContent(file=file)
# REFVERLANG, 001, en: "I use reference, version and language to look up TEST-002-en"
# REFVERLANG, 001, en: "I use reference, version and language to look up TEST-002-en"
filename
=
'REFVERLANG-en-001.odt'
#
filename = 'REFVERLANG-en-001.odt'
file
=
makeFileUpload
(
filename
)
#
file = makeFileUpload(filename)
document8
=
self
.
portal
.
portal_contributions
.
newContent
(
file
=
file
)
#
document8 = self.portal.portal_contributions.newContent(file=file)
self
.
tic
()
self
.
tic
()
# the implicit predecessor will find documents by reference.
# 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 @@
...
@@ -27,7 +27,7 @@
import
warnings
import
warnings
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
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
from
Products.ERP5Type
import
Utils
class
TestERP5PDFMerge
(
ERP5TypeTestCase
):
class
TestERP5PDFMerge
(
ERP5TypeTestCase
):
...
...
bt5/erp5_run_my_doc/TestTemplateItem/portal_components/test.erp5.testRunMyDoc.py
View file @
227402e3
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
##############################################################################
##############################################################################
from
Products.ERP5Type.tests.ERP5TypeTestCase
import
ERP5TypeTestCase
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
from
time
import
time
class
TestRunMyDoc
(
ERP5TypeTestCase
):
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