~ubuntu-branches/ubuntu/karmic/cedar-backup2/karmic

« back to all changes in this revision

Viewing changes to test/mysqltests.py

  • Committer: Bazaar Package Importer
  • Author(s): Kenneth J. Pronovici
  • Date: 2005-12-13 16:13:31 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20051213161331-dw0cj6f534u8oxgf
Tags: 2.7.1-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
# Author   : Kenneth J. Pronovici <pronovic@ieee.org>
29
29
# Language : Python (>= 2.3)
30
30
# Project  : Cedar Backup, release 2
31
 
# Revision : $Id: mysqltests.py 656 2005-03-06 18:39:00Z pronovic $
 
31
# Revision : $Id: mysqltests.py 905 2005-10-30 22:33:18Z pronovic $
32
32
# Purpose  : Tests MySQL extension functionality.
33
33
#
34
34
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
35
 
# This file was created with a width of 132 characters, and NO tabs.
36
35
 
37
36
########################################################################
38
37
# Module documentation
110
109
import os
111
110
from StringIO import StringIO
112
111
 
113
 
# XML-related modules
114
 
from xml.dom.minidom import getDOMImplementation
115
 
from xml.dom.ext import PrettyPrint
116
 
 
117
112
# Cedar Backup modules
118
113
from CedarBackup2.testutil import findResources, buildPath, removedir, failUnlessAssignRaises
 
114
from CedarBackup2.xmlutil import createOutputDom, serializeDom
119
115
from CedarBackup2.extend.mysql import LocalConfig, MysqlConfig, _getOutputFile
120
116
 
121
117
 
124
120
#######################################################################
125
121
 
126
122
DATA_DIRS = [ "./data", "./test/data", ]
127
 
RESOURCES = [ "mysql.conf.1", "mysql.conf.2", "mysql.conf.3", "mysql.conf.4", ]
 
123
RESOURCES = [ "mysql.conf.1", "mysql.conf.2", "mysql.conf.3", "mysql.conf.4", "mysql.conf.5", ]
128
124
 
129
125
 
130
126
#######################################################################
683
679
 
684
680
      @param origConfig: Original configuration.
685
681
      """
686
 
      impl = getDOMImplementation()
687
 
      xmlDom = impl.createDocument(None, "cb_config", None)
688
 
      parentNode = xmlDom.documentElement
 
682
      (xmlDom, parentNode) = createOutputDom()
689
683
      origConfig.addConfig(xmlDom, parentNode)
690
 
      xmlBuffer = StringIO()
691
 
      PrettyPrint(xmlDom, xmlBuffer)
692
 
      xmlData = xmlBuffer.getvalue()
693
 
      xmlBuffer.close()
694
 
      xmlDom.unlink()
 
684
      xmlData = serializeDom(xmlDom)
695
685
      newConfig = LocalConfig(xmlData=xmlData, validate=False)
696
686
      self.failUnlessEqual(origConfig, newConfig)
697
687
 
897
887
      config.mysql = MysqlConfig("user", "password", "gzip", False, ["whatever", ])
898
888
      config.validate()
899
889
 
 
890
   def testValidate_009(self):
 
891
      """
 
892
      Test validate on a non-empty mysql section, with user=None.
 
893
      """
 
894
      config = LocalConfig()
 
895
      config.mysql = MysqlConfig(None, "password", "gzip", True, None)
 
896
      config.validate()
 
897
 
 
898
   def testValidate_010(self):
 
899
      """
 
900
      Test validate on a non-empty mysql section, with password=None.
 
901
      """
 
902
      config = LocalConfig()
 
903
      config.mysql = MysqlConfig("user", None, "gzip", True, None)
 
904
      config.validate()
 
905
 
 
906
   def testValidate_011(self):
 
907
      """
 
908
      Test validate on a non-empty mysql section, with user=None and password=None.
 
909
      """
 
910
      config = LocalConfig()
 
911
      config.mysql = MysqlConfig(None, None, "gzip", True, None)
 
912
      config.validate()
 
913
 
900
914
 
901
915
   ############################
902
916
   # Test parsing of documents
978
992
      self.failUnlessEqual(False, config.mysql.all)
979
993
      self.failUnlessEqual(["database1", "database2", ], config.mysql.databases)
980
994
 
 
995
   def testParse_006(self):
 
996
      """
 
997
      Parse config document containing only a mysql section, no user or password, multiple databases, all=False.
 
998
      """
 
999
      path = self.resources["mysql.conf.5"]
 
1000
      contents = open(path).read()
 
1001
      config = LocalConfig(xmlPath=path, validate=False)
 
1002
      self.failIfEqual(None, config.mysql)
 
1003
      self.failUnlessEqual(None, config.mysql.user)
 
1004
      self.failUnlessEqual(None, config.mysql.password)
 
1005
      self.failUnlessEqual("bzip2", config.mysql.compressMode)
 
1006
      self.failUnlessEqual(False, config.mysql.all)
 
1007
      self.failUnlessEqual(["database1", "database2", ], config.mysql.databases)
 
1008
      config = LocalConfig(xmlData=contents, validate=False)
 
1009
      self.failIfEqual(None, config.mysql)
 
1010
      self.failUnlessEqual(None, config.mysql.user)
 
1011
      self.failUnlessEqual(None, config.mysql.password)
 
1012
      self.failUnlessEqual("bzip2", config.mysql.compressMode)
 
1013
      self.failUnlessEqual(False, config.mysql.all)
 
1014
      self.failUnlessEqual(["database1", "database2", ], config.mysql.databases)
 
1015
 
981
1016
 
982
1017
   ###################
983
1018
   # Test addConfig()
1038
1073
      config.mysql = MysqlConfig("user", "password", "gzip", True, [ "database1", "database2", ])
1039
1074
      self.validateAddConfig(config)
1040
1075
 
 
1076
   def testAddConfig_009(self):
 
1077
      """
 
1078
      Test with multiple databases, user=None but all other values filled in, all=False.
 
1079
      """
 
1080
      config = LocalConfig()
 
1081
      config.mysql = MysqlConfig(None, "password", "gzip", True, [ "database1", "database2", ])
 
1082
      self.validateAddConfig(config)
 
1083
 
 
1084
   def testAddConfig_010(self):
 
1085
      """
 
1086
      Test with multiple databases, password=None but all other values filled in, all=False.
 
1087
      """
 
1088
      config = LocalConfig()
 
1089
      config.mysql = MysqlConfig("user", None, "gzip", True, [ "database1", "database2", ])
 
1090
      self.validateAddConfig(config)
 
1091
 
 
1092
   def testAddConfig_011(self):
 
1093
      """
 
1094
      Test with multiple databases, user=None and password=None but all other values filled in, all=False.
 
1095
      """
 
1096
      config = LocalConfig()
 
1097
      config.mysql = MysqlConfig(None, None, "gzip", True, [ "database1", "database2", ])
 
1098
      self.validateAddConfig(config)
 
1099
 
1041
1100
 
1042
1101
#######################################################################
1043
1102
# Suite definition