* src/plugins/TestcaseGenerator.py: Add unicode test
svn: r5322
This commit is contained in:
@@ -6,7 +6,8 @@
|
|||||||
* src/ImageSelect.py (LocalMediaProperties): Support selection.
|
* src/ImageSelect.py (LocalMediaProperties): Support selection.
|
||||||
|
|
||||||
2005-10-14 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
2005-10-14 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||||
* src/plugins/TestcaseGenerator.py: Randomize SourceRefs
|
* src/plugins/TestcaseGenerator.py: Randomize SourceRefs;
|
||||||
|
Add unicode test
|
||||||
|
|
||||||
2005-10-14 Julio Sanchez <jsanchez@users.sourceforge.net>
|
2005-10-14 Julio Sanchez <jsanchez@users.sourceforge.net>
|
||||||
* src/ChooseParents.py: give unknown sex to the new parent, so that
|
* src/ChooseParents.py: give unknown sex to the new parent, so that
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
@@ -60,6 +61,14 @@ from DateHandler import displayer as _dd
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class TestcaseGenerator(Tool.Tool):
|
class TestcaseGenerator(Tool.Tool):
|
||||||
|
NUMERIC = 0
|
||||||
|
FIRSTNAME = 1
|
||||||
|
FIRSTNAME_FEMALE = 2
|
||||||
|
FIRSTNAME_MALE = 3
|
||||||
|
LASTNAME = 4
|
||||||
|
NOTE = 5
|
||||||
|
SHORT = 6
|
||||||
|
LONG = 7
|
||||||
|
|
||||||
def __init__(self,db,person,options_class,name,callback=None,parent=None):
|
def __init__(self,db,person,options_class,name,callback=None,parent=None):
|
||||||
if db.readonly:
|
if db.readonly:
|
||||||
@@ -309,51 +318,64 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
|
|
||||||
self.default_url = RelLib.Url()
|
self.default_url = RelLib.Url()
|
||||||
self.default_url.set_path("http://www.gramps-project.org/")
|
self.default_url.set_path("http://www.gramps-project.org/")
|
||||||
self.default_url.set_description("GRAMPS Project Homepage")
|
self.default_url.set_description( self.rand_text(self.SHORT))
|
||||||
self.default_source = RelLib.Source()
|
self.default_source = RelLib.Source()
|
||||||
self.default_source.set_title("TestcaseGenerator")
|
self.default_source.set_title( self.rand_text(self.SHORT))
|
||||||
self.default_source.set_author("GRAMPS")
|
self.default_source.set_author( self.rand_text(self.SHORT))
|
||||||
self.default_source.set_publication_info("Randomly generated. No real data.")
|
self.default_source.set_publication_info( self.rand_text(self.LONG))
|
||||||
self.default_source.set_abbreviation("Gramps T.G.")
|
self.default_source.set_abbreviation( self.rand_text(self.SHORT))
|
||||||
self.default_source.set_note("Generated by TestcaseGenerator")
|
self.default_source.set_note( self.rand_text(self.NOTE))
|
||||||
self.default_source.set_data_item("Testcase Attribute", "Value test")
|
self.default_source.set_data_item( self.rand_text(self.SHORT), self.rand_text(self.SHORT))
|
||||||
self.db.add_source(self.default_source, self.trans)
|
self.db.add_source(self.default_source, self.trans)
|
||||||
self.generated_sources.append( self.default_source.get_handle())
|
self.generated_sources.append( self.default_source.get_handle())
|
||||||
self.default_attribute = RelLib.Attribute()
|
self.default_attribute = RelLib.Attribute()
|
||||||
self.default_attribute.set_type("Testcase Attribute")
|
self.default_attribute.set_type( self.rand_text(self.SHORT))
|
||||||
self.default_attribute.set_value("Value test")
|
self.default_attribute.set_value( self.rand_text(self.SHORT))
|
||||||
self.default_attribute.set_note("Generated by TestcaseGenerator")
|
self.default_attribute.set_note( self.rand_text(self.NOTE))
|
||||||
self.default_attribute.add_source_reference( self.rand_sourceref())
|
self.default_attribute.add_source_reference( self.rand_sourceref())
|
||||||
|
(y,d) = self.rand_date()
|
||||||
self.default_media = RelLib.MediaObject()
|
self.default_media = RelLib.MediaObject()
|
||||||
self.default_media.set_description("TestcaseGenerator media")
|
self.default_media.set_description( self.rand_text(self.SHORT))
|
||||||
self.default_media.set_path("/tmp/TestcaseGenerator.png")
|
self.default_media.set_path("/tmp/TestcaseGenerator.png")
|
||||||
self.default_media.set_mime_type("image/png")
|
self.default_media.set_mime_type("image/png")
|
||||||
self.default_media.set_note("Generated by TestcaseGenerator")
|
self.default_media.set_note( self.rand_text(self.NOTE))
|
||||||
|
self.default_media.set_date_object(d)
|
||||||
self.default_media.add_source_reference( self.rand_sourceref())
|
self.default_media.add_source_reference( self.rand_sourceref())
|
||||||
self.default_media.add_attribute(self.default_attribute)
|
self.default_media.add_attribute(self.default_attribute)
|
||||||
self.db.add_object(self.default_media, self.trans)
|
self.db.add_object(self.default_media, self.trans)
|
||||||
self.default_mediaref = RelLib.MediaRef()
|
self.default_mediaref = RelLib.MediaRef()
|
||||||
self.default_mediaref.set_reference_handle(self.default_media.get_handle())
|
self.default_mediaref.set_reference_handle(self.default_media.get_handle())
|
||||||
self.default_mediaref.set_note("Generated by TestcaseGenerator")
|
self.default_mediaref.set_note( self.rand_text(self.NOTE))
|
||||||
self.default_mediaref.add_source_reference( self.rand_sourceref())
|
self.default_mediaref.add_source_reference( self.rand_sourceref())
|
||||||
self.default_mediaref.add_attribute(self.default_attribute)
|
self.default_mediaref.add_attribute(self.default_attribute)
|
||||||
self.default_source.add_media_reference(self.default_mediaref)
|
self.default_source.add_media_reference(self.default_mediaref)
|
||||||
self.db.commit_source(self.default_source, self.trans)
|
self.db.commit_source(self.default_source, self.trans)
|
||||||
|
loc = RelLib.Location()
|
||||||
|
loc.set_city( self.rand_text(self.SHORT))
|
||||||
|
loc.set_postal_code( self.rand_text(self.SHORT))
|
||||||
|
loc.set_phone( self.rand_text(self.SHORT))
|
||||||
|
loc.set_parish( self.rand_text(self.SHORT))
|
||||||
|
loc.set_county( self.rand_text(self.SHORT))
|
||||||
|
loc.set_state( self.rand_text(self.SHORT))
|
||||||
|
loc.set_country( self.rand_text(self.SHORT))
|
||||||
self.default_place = RelLib.Place()
|
self.default_place = RelLib.Place()
|
||||||
self.default_place.set_title("TestcaseGenerator place")
|
self.default_place.set_main_location( loc)
|
||||||
self.default_place.set_note("Generated by TestcaseGenerator")
|
self.default_place.set_title( self.rand_text(self.SHORT))
|
||||||
|
self.default_place.set_note( self.rand_text(self.NOTE))
|
||||||
|
self.default_place.set_longitude( self.rand_text(self.SHORT))
|
||||||
|
self.default_place.set_latitude( self.rand_text(self.SHORT))
|
||||||
self.default_place.add_source_reference( self.rand_sourceref())
|
self.default_place.add_source_reference( self.rand_sourceref())
|
||||||
self.default_place.add_media_reference(self.default_mediaref)
|
self.default_place.add_media_reference(self.default_mediaref)
|
||||||
self.default_place.add_url(self.default_url)
|
self.default_place.add_url(self.default_url)
|
||||||
self.db.add_place(self.default_place, self.trans)
|
self.db.add_place(self.default_place, self.trans)
|
||||||
self.default_address = RelLib.Address()
|
self.default_address = RelLib.Address()
|
||||||
self.default_address.set_street("Teststreet")
|
self.default_address.set_street( self.rand_text(self.SHORT))
|
||||||
self.default_address.set_phone("012 34 56 78")
|
self.default_address.set_phone( self.rand_text(self.SHORT))
|
||||||
self.default_address.set_city("Testcity")
|
self.default_address.set_city( self.rand_text(self.SHORT))
|
||||||
self.default_address.set_state("Teststate")
|
self.default_address.set_state( self.rand_text(self.SHORT))
|
||||||
self.default_address.set_country("Testcountry")
|
self.default_address.set_country( self.rand_text(self.SHORT))
|
||||||
self.default_address.set_postal_code("12345")
|
self.default_address.set_postal_code( self.rand_text(self.SHORT))
|
||||||
self.default_address.set_note("Generated by TestcaseGenerator")
|
self.default_address.set_note( self.rand_text(self.NOTE))
|
||||||
self.default_address.add_source_reference( self.rand_sourceref())
|
self.default_address.add_source_reference( self.rand_sourceref())
|
||||||
|
|
||||||
if self.options.handler.options_dict['bugs']:
|
if self.options.handler.options_dict['bugs']:
|
||||||
@@ -767,7 +789,7 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
name.set_first_name(firstname)
|
name.set_first_name(firstname)
|
||||||
name.set_surname(lastname)
|
name.set_surname(lastname)
|
||||||
name.add_source_reference( self.rand_sourceref())
|
name.add_source_reference( self.rand_sourceref())
|
||||||
name.set_note("Generated by TestcaseGenerator")
|
name.set_note( self.rand_text(self.NOTE))
|
||||||
np.set_primary_name(name)
|
np.set_primary_name(name)
|
||||||
|
|
||||||
# generate some slightly different alternate name
|
# generate some slightly different alternate name
|
||||||
@@ -776,12 +798,12 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
firstname2 = firstname.replace("m", "n").replace("l", "i").replace("b", "d")
|
firstname2 = firstname.replace("m", "n").replace("l", "i").replace("b", "d")
|
||||||
if firstname2 != firstname:
|
if firstname2 != firstname:
|
||||||
alt_name.set_first_name( firstname2)
|
alt_name.set_first_name( firstname2)
|
||||||
alt_name.set_title( "Testtitle")
|
alt_name.set_title( self.rand_text(self.SHORT))
|
||||||
alt_name.set_patronymic( "Testpatronymic")
|
alt_name.set_patronymic( self.rand_text(self.FIRSTNAME_MALE))
|
||||||
alt_name.set_surname_prefix( "van")
|
alt_name.set_surname_prefix( self.rand_text(self.SHORT))
|
||||||
alt_name.set_suffix( "the second")
|
alt_name.set_suffix( self.rand_text(self.SHORT))
|
||||||
alt_name.add_source_reference( self.rand_sourceref())
|
alt_name.add_source_reference( self.rand_sourceref())
|
||||||
alt_name.set_note("Generated by TestcaseGenerator")
|
alt_name.set_note( self.rand_text(self.NOTE))
|
||||||
np.add_alternate_name( alt_name)
|
np.add_alternate_name( alt_name)
|
||||||
|
|
||||||
if not alive_in_year:
|
if not alive_in_year:
|
||||||
@@ -956,10 +978,10 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
object.add_media_reference(self.default_mediaref)
|
object.add_media_reference(self.default_mediaref)
|
||||||
e = RelLib.Event()
|
e = RelLib.Event()
|
||||||
e.set_privacy( randint(0,5) == 1)
|
e.set_privacy( randint(0,5) == 1)
|
||||||
e.set_name("TestcaseGenerator")
|
e.set_name( self.rand_text(self.SHORT))
|
||||||
e.set_note("Generated by TestcaseGenerator")
|
e.set_note( self.rand_text(self.NOTE))
|
||||||
e.set_cause("Test cause")
|
e.set_cause( self.rand_text(self.SHORT))
|
||||||
e.set_description("Test description")
|
e.set_description( self.rand_text(self.SHORT))
|
||||||
e.add_source_reference( self.rand_sourceref())
|
e.add_source_reference( self.rand_sourceref())
|
||||||
mref = RelLib.MediaRef(self.default_mediaref)
|
mref = RelLib.MediaRef(self.default_mediaref)
|
||||||
mref.set_privacy( randint(0,5) == 1)
|
mref.set_privacy( randint(0,5) == 1)
|
||||||
@@ -981,37 +1003,17 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
object.add_address(addr)
|
object.add_address(addr)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass # family does not have an url
|
pass # family does not have an url
|
||||||
object.set_note("Generated by TestcaseGenerator")
|
object.set_note( self.rand_text(self.NOTE))
|
||||||
|
|
||||||
def rand_name( self, lastname=None, gender=None):
|
def rand_name( self, lastname=None, gender=None):
|
||||||
syllables1 = ["sa","li","na","ma","no","re","mi","cha","ki","du","ba","ku","el"]
|
if gender == RelLib.Person.MALE:
|
||||||
syllables2 = ["as","il","an","am","on","er","im","ach","ik","ud","ab","ul","le"]
|
firstname = self.rand_text( self.FIRSTNAME_MALE)
|
||||||
|
elif gender == RelLib.Person.FEMALE:
|
||||||
firstname = ""
|
firstname = self.rand_text( self.FIRSTNAME_FEMALE)
|
||||||
if not gender:
|
else:
|
||||||
gender = choice((RelLib.Person.MALE, RelLib.Person.FEMALE))
|
firstname = self.rand_text( self.FIRSTNAME)
|
||||||
maxnames = 5
|
|
||||||
maxsyllables = 5
|
|
||||||
if not self.options.handler.options_dict['long_names']:
|
|
||||||
maxnames = 2
|
|
||||||
maxsyllables = 3
|
|
||||||
for i in range(0,randint(1,maxnames)):
|
|
||||||
for j in range(0,randint(2,maxsyllables)):
|
|
||||||
firstname = firstname + choice(syllables2)
|
|
||||||
if gender == RelLib.Person.FEMALE:
|
|
||||||
firstname = firstname + choice(("a","e","i","o","u"))
|
|
||||||
firstname = firstname + " "
|
|
||||||
firstname = firstname.title().strip()
|
|
||||||
if not lastname:
|
if not lastname:
|
||||||
lastname = ""
|
lastname = self.rand_text( self.LASTNAME)
|
||||||
for i in range(0,randint(2,maxsyllables)):
|
|
||||||
lastname = lastname + choice(syllables1)
|
|
||||||
n = randint(0,2)
|
|
||||||
if n == 0:
|
|
||||||
lastname = lastname.title()
|
|
||||||
elif n == 1:
|
|
||||||
lastname = lastname.upper()
|
|
||||||
|
|
||||||
return (firstname,lastname)
|
return (firstname,lastname)
|
||||||
|
|
||||||
def rand_date( self, start=None, end=None):
|
def rand_date( self, start=None, end=None):
|
||||||
@@ -1029,7 +1031,7 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
ndate = Date.Date()
|
ndate = Date.Date()
|
||||||
if randint(0,10) == 1:
|
if randint(0,10) == 1:
|
||||||
# Some get a textual date
|
# Some get a textual date
|
||||||
ndate.set_as_text( choice(("Unknown","??","Don't know","TODO!")))
|
ndate.set_as_text( choice((self.rand_text(self.SHORT),"Unknown","??","Don't know","TODO!")))
|
||||||
else:
|
else:
|
||||||
if randint(0,10) == 1:
|
if randint(0,10) == 1:
|
||||||
# some get an empty date
|
# some get an empty date
|
||||||
@@ -1066,11 +1068,11 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
type = choice( ("Census", "Degree", "Emigration", "Immigration"))
|
type = choice( ("Census", "Degree", "Emigration", "Immigration"))
|
||||||
e.set_name( type)
|
e.set_name( type)
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
e.set_note("Generated by TestcaseGenerator")
|
e.set_note( self.rand_text(self.NOTE))
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
e.set_cause("Test cause")
|
e.set_cause( self.rand_text(self.SHORT))
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
e.set_description("Test description")
|
e.set_description( self.rand_text(self.LONG))
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
e.add_source_reference( self.rand_sourceref())
|
e.add_source_reference( self.rand_sourceref())
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
@@ -1084,7 +1086,7 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
if randint(0,5) == 1:
|
if randint(0,5) == 1:
|
||||||
w = RelLib.Witness()
|
w = RelLib.Witness()
|
||||||
w.set_privacy( randint(0,5) == 1)
|
w.set_privacy( randint(0,5) == 1)
|
||||||
w.set_comment("Generated by TestcaseGenerator")
|
w.set_comment( self.rand_text(self.NOTE))
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
w.set_type( RelLib.Event.ID)
|
w.set_type( RelLib.Event.ID)
|
||||||
wph = self.generate_person( alive_in_year=year)
|
wph = self.generate_person( alive_in_year=year)
|
||||||
@@ -1106,7 +1108,7 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
lds.add_source_reference( self.rand_sourceref())
|
lds.add_source_reference( self.rand_sourceref())
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
lds.set_note("Generated by TestcaseGenerator")
|
lds.set_note( self.rand_text(self.NOTE))
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
(year,d) = self.rand_date( )
|
(year,d) = self.rand_date( )
|
||||||
lds.set_date_object( d)
|
lds.set_date_object( d)
|
||||||
@@ -1116,11 +1118,11 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
sref = RelLib.SourceRef()
|
sref = RelLib.SourceRef()
|
||||||
sref.set_base_handle( choice( self.generated_sources))
|
sref.set_base_handle( choice( self.generated_sources))
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
sref.set_page( "%d, %d" % (randint(2,100), randint(101,500)))
|
sref.set_page( self.rand_text(self.NUMERIC))
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
sref.set_text("Test 1 test 2 test 3 test 4")
|
sref.set_text( self.rand_text(self.SHORT))
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
sref.set_note("This is a test only.")
|
sref.set_note( self.rand_text(self.NOTE))
|
||||||
sref.set_privacy( randint(0,5) == 1)
|
sref.set_privacy( randint(0,5) == 1)
|
||||||
if randint(0,1) == 1:
|
if randint(0,1) == 1:
|
||||||
(year, d) = self.rand_date( )
|
(year, d) = self.rand_date( )
|
||||||
@@ -1128,6 +1130,97 @@ class TestcaseGenerator(Tool.Tool):
|
|||||||
sref.set_confidence_level( choice( self.random_confidence_list))
|
sref.set_confidence_level( choice( self.random_confidence_list))
|
||||||
return sref
|
return sref
|
||||||
|
|
||||||
|
def rand_text(self, type=None):
|
||||||
|
# for lastnamesnames
|
||||||
|
syllables1 = ["sa","li","na","ma","no","re","mi","cha","ki","du","ba","ku","el"]
|
||||||
|
# for firstnames
|
||||||
|
syllables2 = ["as","il","an","am","on","er","im","ach","ik","ud","ab","ul","le"]
|
||||||
|
# others
|
||||||
|
syllables3 = ["ka", "po", "lo", "chi", "she", "di", "fa", "go", "ja", "ne", "pe"]
|
||||||
|
|
||||||
|
syllables = syllables1 + syllables2 +syllables3
|
||||||
|
minwords = 5
|
||||||
|
maxwords = 8
|
||||||
|
minsyllables = 2
|
||||||
|
maxsyllables = 5
|
||||||
|
|
||||||
|
result = u"ä<ö&ü%ß"
|
||||||
|
|
||||||
|
if not type:
|
||||||
|
type = self.SHORT
|
||||||
|
|
||||||
|
if type == self.SHORT:
|
||||||
|
minwords = 1
|
||||||
|
maxwords = 3
|
||||||
|
minsyllables = 2
|
||||||
|
maxsyllables = 4
|
||||||
|
|
||||||
|
if type == self.LONG:
|
||||||
|
minwords = 5
|
||||||
|
maxwords = 8
|
||||||
|
minsyllables = 2
|
||||||
|
maxsyllables = 5
|
||||||
|
|
||||||
|
if type == self.FIRSTNAME:
|
||||||
|
type = choice( (self.FIRSTNAME_MALE,self.FIRSTNAME_FEMALE))
|
||||||
|
|
||||||
|
if type == self.FIRSTNAME_MALE or type == self.FIRSTNAME_FEMALE:
|
||||||
|
syllables = syllables2
|
||||||
|
minwords = 1
|
||||||
|
maxwords = 5
|
||||||
|
minsyllables = 2
|
||||||
|
maxsyllables = 5
|
||||||
|
if not self.options.handler.options_dict['long_names']:
|
||||||
|
maxwords = 2
|
||||||
|
maxsyllables = 3
|
||||||
|
|
||||||
|
if type == self.LASTNAME:
|
||||||
|
syllables = syllables1
|
||||||
|
minwords = 1
|
||||||
|
maxwords = 1
|
||||||
|
minsyllables = 2
|
||||||
|
maxsyllables = 5
|
||||||
|
if not self.options.handler.options_dict['long_names']:
|
||||||
|
maxsyllables = 3
|
||||||
|
|
||||||
|
if type == self.NOTE:
|
||||||
|
result = result + "Geberated by TestcaseGenerator."
|
||||||
|
minwords = 20
|
||||||
|
maxwords = 100
|
||||||
|
|
||||||
|
if type == self.NUMERIC:
|
||||||
|
if randint(0,1) == 1:
|
||||||
|
return "%d %s" % (randint(1,100), result)
|
||||||
|
if randint(0,1) == 1:
|
||||||
|
return "%d, %d %s" % (randint(1,100), randint(100,1000), result)
|
||||||
|
m = randint(100,1000)
|
||||||
|
return "%d - %d %s" % (m, m+randint(1,5), result)
|
||||||
|
|
||||||
|
for i in range(0,randint(minwords,maxwords)):
|
||||||
|
if result:
|
||||||
|
result = result + " "
|
||||||
|
word = ""
|
||||||
|
for j in range(0,randint(minsyllables,maxsyllables)):
|
||||||
|
word = word + choice(syllables)
|
||||||
|
if type == self.FIRSTNAME_MALE:
|
||||||
|
word = word + choice(("a","e","i","o","u"))
|
||||||
|
elif type == self.NOTE:
|
||||||
|
if randint(0,20) == 1:
|
||||||
|
word = word + "."
|
||||||
|
elif randint(0,30) == 1:
|
||||||
|
word = word + ".\n"
|
||||||
|
if randint(0,3) == 1:
|
||||||
|
word = word.title()
|
||||||
|
result = result + word
|
||||||
|
|
||||||
|
if type == self.LASTNAME:
|
||||||
|
n = randint(0,2)
|
||||||
|
if n == 0:
|
||||||
|
result = result.title()
|
||||||
|
elif n == 1:
|
||||||
|
result = result.upper()
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
def commit_transaction(self):
|
def commit_transaction(self):
|
||||||
if self.options.handler.options_dict['no_trans']:
|
if self.options.handler.options_dict['no_trans']:
|
||||||
|
Reference in New Issue
Block a user