summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/python-lib/cuddlefish/tests/test_preflight.py
diff options
context:
space:
mode:
Diffstat (limited to 'addon-sdk/source/python-lib/cuddlefish/tests/test_preflight.py')
-rw-r--r--addon-sdk/source/python-lib/cuddlefish/tests/test_preflight.py147
1 files changed, 0 insertions, 147 deletions
diff --git a/addon-sdk/source/python-lib/cuddlefish/tests/test_preflight.py b/addon-sdk/source/python-lib/cuddlefish/tests/test_preflight.py
deleted file mode 100644
index 571b7911b..000000000
--- a/addon-sdk/source/python-lib/cuddlefish/tests/test_preflight.py
+++ /dev/null
@@ -1,147 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-
-import os, shutil
-import simplejson as json
-import unittest
-import hashlib
-import base64
-from cuddlefish import preflight
-from StringIO import StringIO
-
-class Util(unittest.TestCase):
- def get_basedir(self):
- return os.path.join(".test_tmp", self.id())
- def make_basedir(self):
- basedir = self.get_basedir()
- if os.path.isdir(basedir):
- here = os.path.abspath(os.getcwd())
- assert os.path.abspath(basedir).startswith(here) # safety
- shutil.rmtree(basedir)
- os.makedirs(basedir)
- return basedir
-
- def test_base62(self):
- for i in range(1000):
- h = hashlib.sha1(str(i)).digest()
- s1 = base64.b64encode(h, "AB").strip("=")
- s2 = base64.b64encode(h).strip("=").replace("+","A").replace("/","B")
- self.failUnlessEqual(s1, s2)
-
- def write(self, config):
- basedir = self.get_basedir()
- fn = os.path.join(basedir, "package.json")
- open(fn,"w").write(config)
- def read(self):
- basedir = self.get_basedir()
- fn = os.path.join(basedir, "package.json")
- return open(fn,"r").read()
-
- def get_cfg(self):
- cfg = json.loads(self.read())
- if "name" not in cfg:
- # the cfx parser always provides a name, even if package.json
- # doesn't contain one
- cfg["name"] = "pretend name"
- return cfg
-
- def parse(self, keydata):
- fields = {}
- fieldnames = []
- for line in keydata.split("\n"):
- if line.strip():
- k,v = line.split(":", 1)
- k = k.strip() ; v = v.strip()
- fields[k] = v
- fieldnames.append(k)
- return fields, fieldnames
-
- def test_preflight(self):
- basedir = self.make_basedir()
- fn = os.path.join(basedir, "package.json")
-
- # empty config is not ok: need id (name is automatically supplied)
- config_orig = "{}"
- self.write(config_orig)
- out = StringIO()
- cfg = self.get_cfg()
- config_was_ok, modified = preflight.preflight_config(cfg, fn,
- stderr=out)
- self.failUnlessEqual(config_was_ok, False)
- self.failUnlessEqual(modified, True)
- backup_fn = os.path.join(basedir, "package.json.backup")
- config_backup = open(backup_fn,"r").read()
- self.failUnlessEqual(config_backup, config_orig)
- config = json.loads(self.read())
- self.failIf("name" in config)
- self.failUnless("id" in config)
- self.failUnless(config["id"].startswith("jid1-"), config["id"])
- self.failUnlessEqual(out.getvalue().strip(),
- "No 'id' in package.json: creating a new ID for you.")
- os.unlink(backup_fn)
-
- # just a name? we add the id
- config_orig = '{"name": "my-awesome-package"}'
- self.write(config_orig)
- out = StringIO()
- cfg = self.get_cfg()
- config_was_ok, modified = preflight.preflight_config(cfg, fn,
- stderr=out)
- self.failUnlessEqual(config_was_ok, False)
- self.failUnlessEqual(modified, True)
- backup_fn = os.path.join(basedir, "package.json.backup")
- config_backup = open(backup_fn,"r").read()
- self.failUnlessEqual(config_backup, config_orig)
- config = json.loads(self.read())
- self.failUnlessEqual(config["name"], "my-awesome-package")
- self.failUnless("id" in config)
- self.failUnless(config["id"].startswith("jid1-"), config["id"])
- jid = str(config["id"])
- self.failUnlessEqual(out.getvalue().strip(),
- "No 'id' in package.json: creating a new ID for you.")
- os.unlink(backup_fn)
-
- # name and valid id? great! ship it!
- config2 = '{"name": "my-awesome-package", "id": "%s"}' % jid
- self.write(config2)
- out = StringIO()
- cfg = self.get_cfg()
- config_was_ok, modified = preflight.preflight_config(cfg, fn,
- stderr=out)
- self.failUnlessEqual(config_was_ok, True)
- self.failUnlessEqual(modified, False)
- config2a = self.read()
- self.failUnlessEqual(config2a, config2)
- self.failUnlessEqual(out.getvalue().strip(), "")
-
- # name and anonymous ID? without asking to see its papers, ship it
- config3 = '{"name": "my-old-skool-package", "id": "anonid0-deadbeef"}'
- self.write(config3)
- out = StringIO()
- cfg = self.get_cfg()
- config_was_ok, modified = preflight.preflight_config(cfg, fn,
- stderr=out)
- self.failUnlessEqual(config_was_ok, True)
- self.failUnlessEqual(modified, False)
- config3a = self.read()
- self.failUnlessEqual(config3a, config3)
- self.failUnlessEqual(out.getvalue().strip(), "")
-
- # name and old-style ID? with nostalgic trepidation, ship it
- config4 = '{"name": "my-old-skool-package", "id": "foo@bar.baz"}'
- self.write(config4)
- out = StringIO()
- cfg = self.get_cfg()
- config_was_ok, modified = preflight.preflight_config(cfg, fn,
- stderr=out)
- self.failUnlessEqual(config_was_ok, True)
- self.failUnlessEqual(modified, False)
- config4a = self.read()
- self.failUnlessEqual(config4a, config4)
- self.failUnlessEqual(out.getvalue().strip(), "")
-
-
-if __name__ == '__main__':
- unittest.main()