]> scripts.mit.edu Git - wizard.git/blob - lib/wizard/tests/deploy_test.py
79c8245a619e6e2106c8ba1c9e04514b665e9b2c
[wizard.git] / lib / wizard / tests / deploy_test.py
1 from wizard.deploy import *
2 from distutils.version import LooseVersion as Version
3 from datetime import datetime
4 from dateutil.tz import tzoffset
5 import os.path
6
7 def getTestFile(file):
8     return os.path.realpath(os.path.join(__file__, "..", file))
9
10 def test_deployment_parse():
11     result = Deployment.parse("/afs/athena.mit.edu/user/e/z/ezyang/web_scripts/test-wiki:/afs/athena.mit.edu/contrib/scripts/deploy/mediawiki-1.11.0\n")
12     assert result.location == "/afs/athena.mit.edu/user/e/z/ezyang/web_scripts/test-wiki"
13     assert result.getVersion() == Version("1.11.0")
14     assert result.getApplication().name == "mediawiki"
15
16 def test_deployment_parse_parseerror():
17     try:
18         Deployment.parse("foo")
19         assert False
20     except DeploymentParseError:
21         pass
22
23 def test_deployment_parse_nosuchapplication():
24     try:
25         Deployment.parse("a:/foo/obviouslybogus-1.11.0\n")
26         assert False
27     except NoSuchApplication:
28         pass
29
30 def test_deployment_from_dir():
31     pass # XXX
32
33 def test_deploy_log_load():
34     # this also is test_deploy_source_parse() and test_application_version_parse()
35     log = DeployLog.load(getTestFile("deploy-log"))
36
37     assert log[0].datetime == datetime(2006, 3, 23, 10, 7, 40, tzinfo=tzoffset(None, -5 * 60 * 60))
38     assert log[0].user == "unknown"
39     assert isinstance(log[0].source, TarballInstall)
40     assert log[0].source.location == "/afs/athena.mit.edu/contrib/scripts/deploy/mediawiki.tar.gz"
41     assert log[0].source.isDev == False
42     assert log[0].version == applications["mediawiki"].getVersion('1.5.6')
43
44     assert log[1].datetime == datetime(2007, 10, 17, 3, 38, 2, tzinfo=tzoffset(None, -4 * 60 * 60))
45     assert log[1].user == "quentin@QUICHE-LORRAINE.MIT.EDU"
46     assert isinstance(log[1].source, OldUpdate)
47     assert log[1].source.isDev == True
48     assert log[1].version == applications["mediawiki"].getVersion('1.5.6')
49
50     assert log[2].datetime == datetime(2009, 6, 13, 21, 33, 0, tzinfo=tzoffset(None, -4 * 60 * 60))
51     assert log[2].user == "ezyang@mit.edu"
52     assert isinstance(log[2].source, WizardUpdate)
53     assert log[2].version == applications["mediawiki"].getVersion('1.14.0-scripts')