Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Zope
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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
Zope
Commits
22c82a98
Commit
22c82a98
authored
Aug 06, 2001
by
Evan Simpson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merge unit test changes from 2.4 branch
parent
50c35821
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
558 additions
and
276 deletions
+558
-276
lib/python/AccessControl/tests/framework.py
lib/python/AccessControl/tests/framework.py
+118
-0
lib/python/AccessControl/tests/testSecurity.py
lib/python/AccessControl/tests/testSecurity.py
+8
-36
lib/python/DocumentTemplate/sequence/tests/framework.py
lib/python/DocumentTemplate/sequence/tests/framework.py
+118
-0
lib/python/DocumentTemplate/sequence/tests/testSequence.py
lib/python/DocumentTemplate/sequence/tests/testSequence.py
+4
-29
lib/python/OFS/tests/framework.py
lib/python/OFS/tests/framework.py
+118
-0
lib/python/OFS/tests/testRanges.py
lib/python/OFS/tests/testRanges.py
+3
-35
lib/python/SearchIndex/GlobbingLexicon.py
lib/python/SearchIndex/GlobbingLexicon.py
+5
-7
lib/python/SearchIndex/tests/framework.py
lib/python/SearchIndex/tests/framework.py
+118
-0
lib/python/SearchIndex/tests/testSplitter.py
lib/python/SearchIndex/tests/testSplitter.py
+3
-29
lib/python/SearchIndex/tests/testUnKeywordIndex.py
lib/python/SearchIndex/tests/testUnKeywordIndex.py
+2
-25
lib/python/SearchIndex/tests/testUnTextIndex.py
lib/python/SearchIndex/tests/testUnTextIndex.py
+58
-89
lib/python/SearchIndex/tests/test_UnIndex.py
lib/python/SearchIndex/tests/test_UnIndex.py
+3
-26
No files found.
lib/python/AccessControl/tests/framework.py
0 → 100644
View file @
22c82a98
##############################################################################
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
# Copyright (c) Digital Creations. All rights reserved.
#
# This license has been certified as Open Source(tm).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
# violation to remove this button, it is requested that the
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
# Disclaimer
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
##############################################################################
######################################################################
# Set up unit testing framework
#
# The following code should be at the top of every test module:
#
# import os, sys
# execfile(os.path.join(sys.path[0], 'framework.py'))
#
# ...and the following at the bottom:
#
# framework()
# Find the Testing package
if
not
sys
.
modules
.
has_key
(
'Testing'
):
p0
=
sys
.
path
[
0
]
if
p0
and
__name__
==
'__main__'
:
os
.
chdir
(
p0
)
p0
=
''
p
=
d
=
os
.
path
.
abspath
(
os
.
curdir
)
while
d
:
if
os
.
path
.
isdir
(
os
.
path
.
join
(
p
,
'Testing'
)):
sys
.
path
[:
1
]
=
[
p0
,
os
.
pardir
,
p
]
break
p
,
d
=
os
.
path
.
split
(
p
)
else
:
print
'Unable to locate Testing package.'
sys
.
exit
(
1
)
import
Testing
,
unittest
execfile
(
os
.
path
.
join
(
os
.
path
.
split
(
Testing
.
__file__
)[
0
],
'common.py'
))
lib/python/AccessControl/tests/testSecurity.py
View file @
22c82a98
...
...
@@ -85,18 +85,11 @@
"""Document Template Tests
"""
__rcs_id__
=
'$Id: testSecurity.py,v 1.
3 2001/06/21 17:21:09 shane
Exp $'
__version__
=
'$Revision: 1.
3
$'
[
11
:
-
2
]
__rcs_id__
=
'$Id: testSecurity.py,v 1.
4 2001/08/06 17:28:08 evan
Exp $'
__version__
=
'$Revision: 1.
4
$'
[
11
:
-
2
]
import
sys
,
os
import
unittest
if
__name__
==
'__main__'
:
sys
.
path
.
append
(
os
.
path
.
join
(
os
.
pardir
,
os
.
pardir
))
here
=
os
.
curdir
else
:
from
App.Common
import
package_home
here
=
package_home
(
globals
())
import
os
,
sys
execfile
(
os
.
path
.
join
(
sys
.
path
[
0
],
'framework.py'
))
import
ZODB
from
DocumentTemplate
import
HTML
...
...
@@ -113,7 +106,7 @@ class SecurityTests (DTMLTests):
doc_class
=
UnownedDTML
unrestricted_doc_class
=
HTML
def
check
NoImplicitAccess
(
self
):
def
test
NoImplicitAccess
(
self
):
class
person
:
name
=
'Jim'
...
...
@@ -128,7 +121,7 @@ class SecurityTests (DTMLTests):
else
:
assert
0
,
'Did not protect class instance'
def
check
ExprExplicitDeny
(
self
):
def
test
ExprExplicitDeny
(
self
):
class
myclass
(
Base
):
__roles__
=
None
# Public
somemethod__roles__
=
()
# Private
...
...
@@ -144,7 +137,7 @@ class SecurityTests (DTMLTests):
else
:
assert
0
,
'Did not deny attribute access'
def
check
SecurityInSyntax
(
self
):
def
test
SecurityInSyntax
(
self
):
'''
Ensures syntax errors are thrown for an expr with restricted
syntax.
...
...
@@ -167,25 +160,4 @@ class SecurityTests (DTMLTests):
assert
res
==
'10'
,
res
# Note: we need more tests!
def
test_suite
():
return
unittest
.
makeSuite
(
SecurityTests
,
'check'
)
def
main
():
alltests
=
test_suite
()
runner
=
unittest
.
TextTestRunner
()
runner
.
run
(
alltests
)
def
debug
():
test_suite
().
debug
()
def
pdebug
():
import
pdb
pdb
.
run
(
'debug()'
)
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
>
1
:
globals
()[
sys
.
argv
[
1
]]()
else
:
main
()
framework
()
lib/python/DocumentTemplate/sequence/tests/framework.py
0 → 100644
View file @
22c82a98
##############################################################################
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
# Copyright (c) Digital Creations. All rights reserved.
#
# This license has been certified as Open Source(tm).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
# violation to remove this button, it is requested that the
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
# Disclaimer
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
##############################################################################
######################################################################
# Set up unit testing framework
#
# The following code should be at the top of every test module:
#
# import os, sys
# execfile(os.path.join(sys.path[0], 'framework.py'))
#
# ...and the following at the bottom:
#
# framework()
# Find the Testing package
if
not
sys
.
modules
.
has_key
(
'Testing'
):
p0
=
sys
.
path
[
0
]
if
p0
and
__name__
==
'__main__'
:
os
.
chdir
(
p0
)
p0
=
''
p
=
d
=
os
.
path
.
abspath
(
os
.
curdir
)
while
d
:
if
os
.
path
.
isdir
(
os
.
path
.
join
(
p
,
'Testing'
)):
sys
.
path
[:
1
]
=
[
p0
,
os
.
pardir
,
p
]
break
p
,
d
=
os
.
path
.
split
(
p
)
else
:
print
'Unable to locate Testing package.'
sys
.
exit
(
1
)
import
Testing
,
unittest
execfile
(
os
.
path
.
join
(
os
.
path
.
split
(
Testing
.
__file__
)[
0
],
'common.py'
))
lib/python/DocumentTemplate/sequence/tests/testSequence.py
View file @
22c82a98
...
...
@@ -83,16 +83,9 @@
#
##############################################################################
import
sys
sys
.
path
.
insert
(
0
,
'.'
)
try
:
import
Testing
except
ImportError
:
sys
.
path
[
0
]
=
'../../'
import
Testing
import
unittest
sys
.
path
.
insert
(
0
,
'..'
)
import
os
,
sys
execfile
(
os
.
path
.
join
(
sys
.
path
[
0
],
'framework.py'
))
from
SortEx
import
*
from
ztestlib
import
*
from
results
import
*
...
...
@@ -151,22 +144,4 @@ class TestCase( unittest.TestCase ):
assert
res7
==
SortEx
(
wordlist
,
((
"weight"
,),
(
"key"
,
"myCmp"
,
"desc"
)),
md
,
mapping
=
1
)
def
test_suite
():
return
unittest
.
makeSuite
(
TestCase
)
def
debug
():
return
test_suite
().
debug
()
def
pdebug
():
import
pdb
pdb
.
run
(
'debug()'
)
def
main
():
unittest
.
TextTestRunner
().
run
(
test_suite
()
)
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
>
1
:
globals
()[
sys
.
argv
[
1
]]()
else
:
main
()
framework
()
lib/python/OFS/tests/framework.py
0 → 100644
View file @
22c82a98
##############################################################################
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
# Copyright (c) Digital Creations. All rights reserved.
#
# This license has been certified as Open Source(tm).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
# violation to remove this button, it is requested that the
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
# Disclaimer
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
##############################################################################
######################################################################
# Set up unit testing framework
#
# The following code should be at the top of every test module:
#
# import os, sys
# execfile(os.path.join(sys.path[0], 'framework.py'))
#
# ...and the following at the bottom:
#
# framework()
# Find the Testing package
if
not
sys
.
modules
.
has_key
(
'Testing'
):
p0
=
sys
.
path
[
0
]
if
p0
and
__name__
==
'__main__'
:
os
.
chdir
(
p0
)
p0
=
''
p
=
d
=
os
.
path
.
abspath
(
os
.
curdir
)
while
d
:
if
os
.
path
.
isdir
(
os
.
path
.
join
(
p
,
'Testing'
)):
sys
.
path
[:
1
]
=
[
p0
,
os
.
pardir
,
p
]
break
p
,
d
=
os
.
path
.
split
(
p
)
else
:
print
'Unable to locate Testing package.'
sys
.
exit
(
1
)
import
Testing
,
unittest
execfile
(
os
.
path
.
join
(
os
.
path
.
split
(
Testing
.
__file__
)[
0
],
'common.py'
))
lib/python/OFS/tests/testRanges.py
View file @
22c82a98
...
...
@@ -84,23 +84,10 @@
##############################################################################
import
os
,
sys
sys
.
path
.
insert
(
0
,
'.'
)
try
:
import
Testing
os
.
environ
[
'SOFTWARE_HOME'
]
=
os
.
environ
.
get
(
'SOFTWARE_HOME'
,
'.'
)
except
ImportError
:
sys
.
path
[
0
]
=
'../..'
import
Testing
os
.
environ
[
'SOFTWARE_HOME'
]
=
'../..'
os
.
environ
[
'INSTANCE_HOME'
]
=
os
.
environ
.
get
(
'INSTANCE_HOME'
,
os
.
path
.
join
(
os
.
environ
[
'SOFTWARE_HOME'
],
'..'
,
'..'
)
)
execfile
(
os
.
path
.
join
(
sys
.
path
[
0
],
'framework.py'
))
import
string
,
whrandom
,
cStringIO
,
time
,
re
import
Zope
import
unittest
from
Testing.makerequest
import
makerequest
from
webdav.common
import
rfc1123_date
...
...
@@ -140,7 +127,7 @@ class TestRequestRange(unittest.TestCase):
self
.
data
=
data
# Hack, we need a _p_mtime for the file, so we make sure that it has
# one. We use a subtransaction, which means we can rol
-
back later and
# one. We use a subtransaction, which means we can rol
l
back later and
# pretend we didn't touch the ZODB.
get_transaction
().
commit
()
...
...
@@ -407,23 +394,4 @@ class TestRequestRange(unittest.TestCase):
self
.
expectOK
(
'21-25,10-20'
,
if_range
=
self
.
file
.
http__etag
()
+
'bar'
)
def
test_suite
():
return
unittest
.
makeSuite
(
TestRequestRange
,
'test'
)
def
main
():
unittest
.
TextTestRunner
().
run
(
test_suite
())
def
debug
():
test_suite
().
debug
()
def
pdebug
():
import
pdb
pdb
.
run
(
'debug()'
)
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
>
1
:
globals
()[
sys
.
argv
[
1
]]()
else
:
main
()
framework
()
lib/python/SearchIndex/GlobbingLexicon.py
View file @
22c82a98
...
...
@@ -145,14 +145,12 @@ class GlobbingLexicon(Lexicon):
def
createDigrams
(
self
,
word
):
"""Returns a list with the set of digrams in the word."""
digrams
=
[]
digrams
.
append
(
self
.
eow
+
word
[
0
])
# Mark the beginning
for
i
in
range
(
1
,
len
(
word
)):
digrams
.
append
(
word
[
i
-
1
:
i
+
1
])
digrams
=
list
(
word
)
digrams
.
append
(
self
.
eow
)
last
=
self
.
eow
digrams
[
-
1
]
=
digrams
[
-
1
]
+
self
.
eow
# Mark the end
for
i
in
range
(
len
(
digrams
)):
last
,
digrams
[
i
]
=
digrams
[
i
],
last
+
digrams
[
i
]
return
digrams
...
...
lib/python/SearchIndex/tests/framework.py
0 → 100644
View file @
22c82a98
##############################################################################
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
# Copyright (c) Digital Creations. All rights reserved.
#
# This license has been certified as Open Source(tm).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
# violation to remove this button, it is requested that the
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
# Disclaimer
#
# THIS SOFTWARE IS PROVIDED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
##############################################################################
######################################################################
# Set up unit testing framework
#
# The following code should be at the top of every test module:
#
# import os, sys
# execfile(os.path.join(sys.path[0], 'framework.py'))
#
# ...and the following at the bottom:
#
# framework()
# Find the Testing package
if
not
sys
.
modules
.
has_key
(
'Testing'
):
p0
=
sys
.
path
[
0
]
if
p0
and
__name__
==
'__main__'
:
os
.
chdir
(
p0
)
p0
=
''
p
=
d
=
os
.
path
.
abspath
(
os
.
curdir
)
while
d
:
if
os
.
path
.
isdir
(
os
.
path
.
join
(
p
,
'Testing'
)):
sys
.
path
[:
1
]
=
[
p0
,
os
.
pardir
,
p
]
break
p
,
d
=
os
.
path
.
split
(
p
)
else
:
print
'Unable to locate Testing package.'
sys
.
exit
(
1
)
import
Testing
,
unittest
execfile
(
os
.
path
.
join
(
os
.
path
.
split
(
Testing
.
__file__
)[
0
],
'common.py'
))
lib/python/SearchIndex/tests/testSplitter.py
View file @
22c82a98
...
...
@@ -82,17 +82,9 @@
# attributions are listed in the accompanying credits file.
#
##############################################################################
import
os
,
sys
execfile
(
os
.
path
.
join
(
sys
.
path
[
0
],
'framework.py'
))
import
sys
try
:
import
ZODB
except
:
import
os
sys
.
path
.
insert
(
0
,
os
.
getcwd
())
sys
.
path
.
insert
(
0
,
'../..'
)
import
ZODB
import
unittest
from
SearchIndex.Splitter
import
Splitter
class
TestSplitter
(
unittest
.
TestCase
):
...
...
@@ -120,22 +112,4 @@ class TestSplitter(unittest.TestCase):
r
=
map
(
None
,
a
)
assert
r
==
[
'without'
,
'you'
,
'nothing'
],
r
def
test_suite
():
return
unittest
.
makeSuite
(
TestSplitter
,
'test'
)
def
main
():
unittest
.
TextTestRunner
().
run
(
test_suite
())
def
debug
():
test_suite
().
debug
()
def
pdebug
():
import
pdb
pdb
.
run
(
'debug()'
)
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
>
1
:
globals
()[
sys
.
argv
[
1
]]()
else
:
main
()
framework
()
lib/python/SearchIndex/tests/testUnKeywordIndex.py
View file @
22c82a98
...
...
@@ -83,12 +83,7 @@
#
##############################################################################
import
os
,
sys
sys
.
path
.
insert
(
0
,
os
.
getcwd
())
try
:
import
unittest
except
:
sys
.
path
[
0
]
=
os
.
path
.
join
(
sys
.
path
[
0
],
'..'
,
'..'
)
import
unittest
execfile
(
os
.
path
.
join
(
sys
.
path
[
0
],
'framework.py'
))
import
ZODB
from
SearchIndex.UnKeywordIndex
import
UnKeywordIndex
...
...
@@ -249,22 +244,4 @@ class TestCase( unittest.TestCase ):
assert
len
(
result
)
==
1
assert
result
[
0
]
==
8
def
test_suite
():
return
unittest
.
makeSuite
(
TestCase
)
def
main
():
unittest
.
TextTestRunner
().
run
(
test_suite
()
)
def
debug
():
test_suite
().
debug
()
def
pdebug
():
import
pdb
pdb
.
run
(
'debug()'
)
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
>
1
:
globals
()[
sys
.
argv
[
1
]]()
else
:
main
()
framework
()
lib/python/SearchIndex/tests/testUnTextIndex.py
View file @
22c82a98
...
...
@@ -83,26 +83,12 @@
#
##############################################################################
import
sys
,
os
,
glob
,
unittest
import
os
,
sys
execfile
(
os
.
path
.
join
(
sys
.
path
[
0
],
'framework.py'
))
sys
.
path
.
insert
(
0
,
os
.
getcwd
())
try
:
import
zLOG
except
:
sys
.
path
[
0
]
=
os
.
path
.
join
(
sys
.
path
[
0
],
'..'
,
'..'
)
import
zLOG
class
Dummy
:
catch_log_errors
()
from
Testing.ZODButil
import
makeDB
,
cleanDB
def
__init__
(
self
,
**
kw
):
self
.
__dict__
.
update
(
kw
)
def
log_write
(
subsystem
,
severity
,
summary
,
detail
,
error
):
if
severity
>=
zLOG
.
PROBLEM
:
assert
0
,
"%s(%s): %s"
%
(
subsystem
,
severity
,
summary
)
zLOG
.
log_write
=
log_write
import
ZODB
,
ZODB
.
DemoStorage
,
ZODB
.
FileStorage
import
SearchIndex.UnTextIndex
import
SearchIndex.GlobbingLexicon
...
...
@@ -113,9 +99,7 @@ class Tests(unittest.TestCase):
self
.
doc
=
Dummy
(
text
=
'this is the time, when all good zopes'
)
def
dbopen
(
self
):
n
=
'fs_tmp__%s'
%
os
.
getpid
()
s
=
ZODB
.
FileStorage
.
FileStorage
(
n
)
db
=
self
.
db
=
ZODB
.
DB
(
s
)
db
=
self
.
db
=
makeDB
()
self
.
jar
=
db
.
open
()
if
not
self
.
jar
.
root
().
has_key
(
'index'
):
self
.
jar
.
root
()[
'index'
]
=
SearchIndex
.
UnTextIndex
.
UnTextIndex
(
'text'
)
...
...
@@ -132,19 +116,19 @@ class Tests(unittest.TestCase):
get_transaction
().
abort
()
if
hasattr
(
self
,
'jar'
):
self
.
dbclose
()
for
fn
in
glob
.
glob
(
'fs_tmp__*'
):
os
.
remove
(
fn
)
cleanDB
()
self
.
__dict__
.
clear
(
)
def
check
SimpleAddDelete
(
self
):
"
Check
that we can add and delete an object without error"
def
test
SimpleAddDelete
(
self
):
"
Test
that we can add and delete an object without error"
self
.
index
.
index_object
(
0
,
self
.
doc
)
self
.
index
.
index_object
(
1
,
self
.
doc
)
self
.
doc
.
text
=
'spam is good, spam is fine, span span span'
self
.
index
.
index_object
(
0
,
self
.
doc
)
self
.
index
.
unindex_object
(
0
)
def
check
PersistentUpdate1
(
self
):
"
Check
simple persistent indexing"
def
test
PersistentUpdate1
(
self
):
"
Test
simple persistent indexing"
index
=
self
.
dbopen
()
self
.
doc
.
text
=
'this is the time, when all good zopes'
...
...
@@ -169,8 +153,8 @@ class Tests(unittest.TestCase):
r
=
list
(
r
[
0
].
keys
())
assert
r
==
[
0
,
1
],
r
def
check
PersistentUpdate2
(
self
):
"
Check
less simple persistent indexing"
def
test
PersistentUpdate2
(
self
):
"
Test
less simple persistent indexing"
index
=
self
.
dbopen
()
self
.
doc
.
text
=
'this is the time, when all good zopes'
...
...
@@ -218,92 +202,77 @@ class Tests(unittest.TestCase):
]
def
globTest
(
self
,
qmap
,
rlist
):
"Check a glob query"
index
=
self
.
dbopen
()
index
.
_lexicon
=
SearchIndex
.
GlobbingLexicon
.
GlobbingLexicon
()
"Test a glob query"
index
=
getattr
(
self
,
'_v_index'
,
None
)
if
index
is
None
:
index
=
self
.
dbopen
()
index
.
_lexicon
=
SearchIndex
.
GlobbingLexicon
.
GlobbingLexicon
()
for
i
in
range
(
len
(
self
.
sample_texts
)):
self
.
doc
.
text
=
self
.
sample_texts
[
i
]
index
.
index_object
(
i
,
self
.
doc
)
get_transaction
().
commit
()
for
i
in
range
(
len
(
self
.
sample_texts
)):
self
.
doc
.
text
=
self
.
sample_texts
[
i
]
index
.
index_object
(
i
,
self
.
doc
)
get_transaction
().
commit
()
self
.
dbclose
()
self
.
dbclose
()
index
=
self
.
dbopen
()
index
=
self
.
_v_index
=
self
.
dbopen
()
r
=
list
(
index
.
_apply_index
(
qmap
)[
0
].
keys
())
assert
r
==
rlist
,
r
return
index
.
_apply_index
def
check
StarQuery
(
self
):
"
Check
a star query"
def
test
StarQuery
(
self
):
"
Test
a star query"
self
.
globTest
({
'text'
:
'm*n'
},
[
0
,
2
])
def
check
AndQuery
(
self
):
"
Check
an AND query"
def
test
AndQuery
(
self
):
"
Test
an AND query"
self
.
globTest
({
'text'
:
'time and country'
},
[
0
,])
def
check
OrQuery
(
self
):
"
Check
an OR query"
def
test
OrQuery
(
self
):
"
Test
an OR query"
self
.
globTest
({
'text'
:
'time or country'
},
[
0
,
1
,
6
])
def
check
DefOrQuery
(
self
):
"
Check
a default OR query"
def
test
DefOrQuery
(
self
):
"
Test
a default OR query"
self
.
globTest
({
'text'
:
'time country'
},
[
0
,
1
,
6
])
def
check
NearQuery
(
self
):
"""
Check
a NEAR query.. (NOTE:ACTUALLY AN 'AND' TEST!!)"""
def
test
NearQuery
(
self
):
"""
Test
a NEAR query.. (NOTE:ACTUALLY AN 'AND' TEST!!)"""
# NEAR never worked, so Zopes post-2.3.1b3 define near to mean AND
self
.
globTest
({
'text'
:
'time ... country'
},
[
0
,])
def
checkQuotesQuery
(
self
):
"""Check a quoted query"""
ai
=
self
.
globTest
({
'text'
:
'"This is the time"'
},
[
0
,])
def
testQuotesQuery
(
self
):
"""Test a quoted query"""
self
.
globTest
({
'text'
:
'"This is the time"'
},
[
0
,])
self
.
globTest
({
'text'
:
'"now is the time"'
},
[])
r
=
list
(
ai
({
'text'
:
'"now is the time"'
})[
0
].
keys
())
assert
r
==
[],
r
def
checkAndNotQuery
(
self
):
"Check an ANDNOT query"
def
testAndNotQuery
(
self
):
"Test an ANDNOT query"
self
.
globTest
({
'text'
:
'time and not country'
},
[
6
,])
def
checkParenMatchingQuery
(
self
):
"Check a query with parens"
ai
=
self
.
globTest
({
'text'
:
'(time and country) men'
},
[
0
,])
r
=
list
(
ai
({
'text'
:
'(time and not country) or men'
})[
0
].
keys
())
assert
r
==
[
0
,
6
],
r
def
testParenMatchingQuery
(
self
):
"Test a query with parens"
self
.
globTest
({
'text'
:
'(time and country) men'
},
[
0
,])
self
.
globTest
({
'text'
:
'(time and not country) or men'
},
[
0
,
6
])
def
check
TextIndexOperatorQuery
(
self
):
"
Check
a query with 'textindex_operator' in the request"
def
test
TextIndexOperatorQuery
(
self
):
"
Test
a query with 'textindex_operator' in the request"
self
.
globTest
({
'text'
:
'time men'
,
'textindex_operator'
:
'and'
},
[
0
,])
def
check
NonExistentWord
(
self
):
"""
Check
for nonexistent word """
def
test
NonExistentWord
(
self
):
"""
Test
for nonexistent word """
self
.
globTest
({
'text'
:
'zop'
},
[])
def
checkComplexQuery1
(
self
):
""" Check complex query 1 """
def
testShortWord
(
self
):
""" Test for short word """
self
.
globTest
({
'text'
:
'to'
},
[
0
,
2
,
6
])
self
.
globTest
({
'text'
:
'*to'
},
[
0
,
2
,
6
])
self
.
globTest
({
'text'
:
'to*'
},
[
0
,
2
,
6
])
self
.
globTest
({
'text'
:
'*to*'
},
[
0
,
2
,
6
])
def
testComplexQuery1
(
self
):
""" Test complex query 1 """
self
.
globTest
({
'text'
:
'((?ount* or get) and not wait) '
'"been *ert*"'
},
[
0
,
1
,
5
,
6
])
def
test_suite
():
return
unittest
.
makeSuite
(
Tests
,
'check'
)
def
main
():
unittest
.
TextTestRunner
().
run
(
test_suite
())
def
debug
():
test_suite
().
debug
()
def
pdebug
():
import
pdb
pdb
.
run
(
'debug()'
)
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
>
1
:
globals
()[
sys
.
argv
[
1
]]()
else
:
main
()
framework
()
lib/python/SearchIndex/tests/test_UnIndex.py
View file @
22c82a98
...
...
@@ -83,16 +83,10 @@
#
##############################################################################
import
sys
sys
.
path
.
insert
(
0
,
'.'
)
try
:
import
Testing
except
ImportError
:
sys
.
path
[
0
]
=
'../../'
import
Testing
import
os
,
sys
execfile
(
os
.
path
.
join
(
sys
.
path
[
0
],
'framework.py'
))
import
ZODB
import
unittest
from
SearchIndex.UnIndex
import
UnIndex
class
Dummy
:
...
...
@@ -249,21 +243,4 @@ class TestCase( unittest.TestCase ):
assert
r
==
expect
,
r
def
test_suite
():
return
unittest
.
makeSuite
(
TestCase
)
def
debug
():
return
test_suite
().
debug
()
def
pdebug
():
import
pdb
pdb
.
run
(
'debug()'
)
def
main
():
unittest
.
TextTestRunner
().
run
(
test_suite
()
)
if
__name__
==
'__main__'
:
if
len
(
sys
.
argv
)
>
1
:
globals
()[
sys
.
argv
[
1
]]()
else
:
main
()
framework
()
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