def testAddingVersions(self): helpers.gennest(testdir) # test logic pake.config.nest.Versions(test_nest_root).add('0.0.1-alpha.1').add('0.0.1-beta.1').add('0.0.1-rc.1').add('0.0.1').write() self.assertEqual(['0.0.1-alpha.1', '0.0.1-beta.1', '0.0.1-rc.1', '0.0.1'], list(pake.config.nest.Versions(test_nest_root))) # cleanup helpers.rmnest(testdir)
def testAddingFileFailsIfFileHasAlreadyBeenAdded(self): helpers.gennest(testdir) # test logic pake.config.nest.Files(test_nest_root).add(path='./pake/__init__.py').write() self.assertRaises(FileExistsError, pake.config.nest.Files(test_nest_root).add, path='./pake/__init__.py') # cleanup helpers.rmnest(testdir)
def testNestManagerRemovingNode(self): """This test checks if node gets correctly deleted. """ # preparation helpers.gennest(testdir) # test logic & cleanup pake.nest.manager.remove(root=testdir) self.assertNotIn('.pakenest', os.listdir(testdir))
def testListingDependencies(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set(name='foo').set(name='bar').set(name='baz').write() desired = ['foo', 'bar', 'baz'] self.assertEqual(sorted(desired), sorted(list(pake.config.nest.Dependencies(test_nest_root)))) # cleanup helpers.rmnest(testdir)
def testAddingFileFailsIfPathIsNotAFile(self): helpers.gennest(testdir) # test logic self.assertRaises(pake.errors.NotAFileError, pake.config.nest.Files(test_nest_root).add, path='./this_file_does_not.exist') # cleanup helpers.rmnest(testdir)
def testGettingDependencyData(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set(name='foo', origin='http://pake.example.com', min='0.2.4', max='2.4.8').write() desired = {'origin': 'http://pake.example.com', 'min': '0.2.4', 'max': '2.4.8'} self.assertEqual(desired, pake.config.nest.Dependencies(test_nest_root).get(name='foo')) # cleanup helpers.rmnest(testdir)
def testAddingFileFailsIfPathIsNotAFile(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.files.add', 'path': './this_file_does_not.exist'}] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic self.assertRaises(pake.errors.NotAFileError, runner.run) # cleanup helpers.rmnest(testdir)
def testListingFiles(self): helpers.gennest(testdir) # test logic pake.config.nest.Files(test_nest_root).add(path='./pake/__init__.py').add('./pake/shared.py').write() desired = ['./pake/__init__.py', './pake/shared.py'] self.assertEqual(desired, list(pake.config.nest.Files(test_nest_root))) # cleanup helpers.rmnest(testdir)
def testNestManagerRemovingNode(self): """This test checks if node gets correctly deleted. """ # preparation helpers.gennest(testdir) runner = pake.transactions.runner.Runner(root=testdir, requests=[{'act': 'nest.manager.remove', 'path': testdir}]) # test logic & cleanup runner.run() self.assertNotIn('.pakenest', os.listdir(testdir))
def testAddingVersionsButCheckingIfItsNotLowerThanTheLastOne(self): helpers.gennest(testdir) # test logic pake.config.nest.Versions(test_nest_root).add('0.0.1-beta.1').write() self.assertRaises(ValueError, pake.config.nest.Versions(test_nest_root).add, '0.0.1-alpha.17', check=True) # assertNotRaises -- just run it; if no exception is raise everything's fine pake.config.nest.Versions(test_nest_root).add('0.0.1', check=True) # cleanup helpers.rmnest(testdir)
def testListingFiles(self): helpers.gennest(testdir) # test logic pake.config.nest.Files(test_nest_root).add( path='./pake/__init__.py').add('./pake/shared.py').write() desired = ['./pake/__init__.py', './pake/shared.py'] self.assertEqual(desired, list(pake.config.nest.Files(test_nest_root))) # cleanup helpers.rmnest(testdir)
def testPackageBuildCreatesAllNecessaryFiles(self): helpers.gennest(testdir) version = helpers.buildTestPackage(path=test_nest_root, version='0.2.4.8') # test logic self.assertIn(version, os.listdir(os.path.join(test_nest_root, 'versions'))) self.assertIn('meta.json', os.listdir(os.path.join(test_nest_root, 'versions', version))) self.assertIn('dependencies.json', os.listdir(os.path.join(test_nest_root, 'versions', version))) self.assertIn('build.tar.xz', os.listdir(os.path.join(test_nest_root, 'versions', version))) # cleanup helpers.rmnest(testdir)
def testAddingFileFailsIfFileHasAlreadyBeenAdded(self): helpers.gennest(testdir) # test logic pake.config.nest.Files(test_nest_root).add( path='./pake/__init__.py').write() self.assertRaises(FileExistsError, pake.config.nest.Files(test_nest_root).add, path='./pake/__init__.py') # cleanup helpers.rmnest(testdir)
def testAddingFileFailsIfFileHasAlreadyBeenAdded(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.files.add', 'path': './pake/__init__.py'}, {'act': 'nest.config.files.add', 'path': './pake/__init__.py'} ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic self.assertRaises(FileExistsError, runner.run) # cleanup helpers.rmnest(testdir)
def testAddingVersions(self): helpers.gennest(testdir) # test logic pake.config.nest.Versions(test_nest_root).add('0.0.1-alpha.1').add( '0.0.1-beta.1').add('0.0.1-rc.1').add('0.0.1').write() self.assertEqual( ['0.0.1-alpha.1', '0.0.1-beta.1', '0.0.1-rc.1', '0.0.1'], list(pake.config.nest.Versions(test_nest_root))) # cleanup helpers.rmnest(testdir)
def testRemovingVersions(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.versions.add', 'version': '0.0.1-beta.1'}, {'act': 'nest.config.versions.remove', 'version': '0.0.1-beta.1'} ] pake.transactions.runner.Runner(root=testdir, requests=reqs).run() # test logic self.assertEqual([], list(pake.config.nest.Versions(test_nest_root))) # cleanup helpers.rmnest(testdir)
def testAddingADependencyWithSpecifiedMaximalVersion(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set(name='foo', max='2.4.8').write() ifstream = open(os.path.join(test_nest_root, 'dependencies.json')) dep = json.loads(ifstream.read()) ifstream.close() desired = {'foo': {'max': '2.4.8'}} self.assertEqual(desired, dep) # cleanup helpers.rmnest(testdir)
def testAddingADependency(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set(name='foo').write() ifstream = open(os.path.join(test_nest_root, 'dependencies.json')) dep = json.loads(ifstream.read()) ifstream.close() desired = {'foo': {}} self.assertEqual(desired, dep) # cleanup helpers.rmnest(testdir)
def testListingDependencies(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set(name='foo').set( name='bar').set(name='baz').write() desired = ['foo', 'bar', 'baz'] self.assertEqual( sorted(desired), sorted(list(pake.config.nest.Dependencies(test_nest_root)))) # cleanup helpers.rmnest(testdir)
def testAddingFile(self): helpers.gennest(testdir) # test logic pake.nest.package.addfile(test_nest_root, path='./pake/__init__.py') ifstream = open(os.path.join(test_nest_root, 'files.json')) files = json.loads(ifstream.read()) ifstream.close() desired = ['./pake/__init__.py'] self.assertEqual(desired, files) # cleanup helpers.rmnest(testdir)
def testAddingADependencyWithFullSpecification(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set(name='foo', origin='http://pake.example.com', min='0.2.4', max='2.4.8').write() ifstream = open(os.path.join(test_nest_root, 'dependencies.json')) dep = json.loads(ifstream.read()) ifstream.close() desired = {'foo': {'origin': 'http://pake.example.com', 'min': '0.2.4', 'max': '2.4.8'}} self.assertEqual(desired, dep) # cleanup helpers.rmnest(testdir)
def testRegisteringNest(self): helpers.gennode(testdir) helpers.gennest(testdir) reqs = [{'act': 'nest.config.meta.set', 'key': 'name', 'value': 'test'}, {'act': 'node.config.nests.register', 'path': testdir}] pake.transactions.runner.Runner(root=testdir, requests=reqs).run() # test logic self.assertEqual(os.path.abspath(test_nest_root), pake.config.node.Nests(test_node_root).get('test')) # cleanup helpers.rmnode(testdir) helpers.rmnest(testdir)
def testAddingADependencyWithSpecifiedOrigin(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set( name='foo', origin='http://pake.example.com').write() ifstream = open(os.path.join(test_nest_root, 'dependencies.json')) dep = json.loads(ifstream.read()) ifstream.close() desired = {'foo': {'origin': 'http://pake.example.com'}} self.assertEqual(desired, dep) # cleanup helpers.rmnest(testdir)
def testRemovingADependency(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set(name='foo', origin='http://pake.example.com', min='0.2.4', max='2.4.8').write() pake.config.nest.Dependencies(test_nest_root).remove(name='foo').write() ifstream = open(os.path.join(test_nest_root, 'dependencies.json')) dep = json.loads(ifstream.read()) ifstream.close() desired = {} self.assertEqual(desired, dep) # cleanup helpers.rmnest(testdir)
def testRemovingFile(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.files.add', 'path': './pake/__init__.py'}, {'act': 'nest.config.files.remove', 'path': './pake/__init__.py'}] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() ifstream = open(os.path.join(test_nest_root, 'files.json')) files = json.loads(ifstream.read()) ifstream.close() self.assertEqual([], files) # cleanup helpers.rmnest(testdir)
def testRemovingNest(self): helpers.gennode(testdir) helpers.gennest(testdir) reqs = [{'act': 'nest.config.meta.set', 'key': 'name', 'value': 'test'}, {'act': 'node.config.nests.register', 'path': testdir}, {'act': 'node.config.nests.remove', 'name': 'test'}] pake.transactions.runner.Runner(root=testdir, requests=reqs).run() # test logic self.assertRaises(KeyError, pake.config.node.Nests(test_node_root).get, 'test') # cleanup helpers.rmnode(testdir) helpers.rmnest(testdir)
def testIfBuildIncludedNewVersionInVersionsFile(self): helpers.gennest(testdir) desired = [] desired.append(helpers.buildTestPackage(test_nest_root, version='0.1.2', files=[], directories=[])) desired.append(helpers.buildTestPackage(test_nest_root, version='0.1.3', files=[], directories=[])) desired.append(helpers.buildTestPackage(test_nest_root, version='0.1.4', files=[], directories=[])) versions = pake.config.nest.Versions(test_nest_root) # test logic for i in desired: self.assertIn(i, versions) # cleanup helpers.rmnest(testdir)
def testAddingADependencyWithFullSpecification(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.dependencies.set', 'name': 'foo', 'origin': 'http://pake.example.com', 'min': '0.2.4', 'max': '2.4.8'}] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() ifstream = open(os.path.join(test_nest_root, 'dependencies.json')) dep = json.loads(ifstream.read()) ifstream.close() desired = {'foo': {'origin': 'http://pake.example.com', 'min': '0.2.4', 'max': '2.4.8'}} self.assertEqual(desired, dep) # cleanup helpers.rmnest(testdir)
def testAddingADependency(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.dependencies.set', 'name': 'foo'}] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() ifstream = open(os.path.join(test_nest_root, 'dependencies.json')) dep = json.loads(ifstream.read()) ifstream.close() desired = {'foo': {}} self.assertEqual(desired, dep) # cleanup helpers.rmnest(testdir)
def testListingFiles(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.files.add', 'path': './pake/__init__.py'}, {'act': 'nest.config.files.add', 'path': './pake/shared.py'}, {'act': 'nest.config.files.list'} ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() desired = ['./pake/__init__.py', './pake/shared.py'] self.assertEqual(desired, runner.getstack()[-1]) # cleanup helpers.rmnest(testdir)
def testAddingVersions(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.versions.add', 'version': '0.0.1-alpha.1'}, {'act': 'nest.config.versions.add', 'version': '0.0.1-beta.1'}, {'act': 'nest.config.versions.add', 'version': '0.0.1-rc.1'}, {'act': 'nest.config.versions.add', 'version': '0.0.1'}, ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() self.assertEqual(['0.0.1-alpha.1', '0.0.1-beta.1', '0.0.1-rc.1', '0.0.1'], list(pake.config.nest.Versions(test_nest_root))) # cleanup helpers.rmnest(testdir)
def testGettingPathsOfAllNests(self): helpers.gennode(testdir) helpers.gennest(testdir) reqs = [{'act': 'nest.config.meta.set', 'key': 'name', 'value': 'test'}, {'act': 'node.config.nests.register', 'path': testdir}, {'act': 'node.config.nests.getpaths'} ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic self.assertEqual([os.path.abspath(test_nest_root)], runner.run().getstack()[-1]) # cleanup helpers.rmnode(testdir) helpers.rmnest(testdir)
def testIfArchieveContainsAllRequiredFiles(self): helpers.gennest(testdir) desired = ['./pake/__init__.py', './pake/shared.py'] version = helpers.buildTestPackage(path=test_nest_root, version='2.4.8', files=desired, directories=[]) # test logic test_pkg = tarfile.TarFile(os.path.join(test_nest_root, 'versions', version, 'build.tar.xz'), 'r') names = test_pkg.getnames() test_pkg.close() # create list of files we expect to be included if VERBOSE: [print(i) for i in names] self.assertEqual(sorted([os.path.normpath(i) for i in desired]), sorted(names)) # cleanup helpers.rmnest(testdir)
def testRegisteringNests(self): helpers.gennode(testdir) helpers.gennest(testdir) # test logic pake.config.nest.Meta(test_nest_root).set('name', 'foo').write() pake.node.packages.register(root=test_node_root, path=testdir) print('don\'t worry - this warning is supposed to appear in this test') # paths must be absolute to ensure that they are reachable from every directory self.assertEqual(os.path.abspath(test_nest_root), pake.config.node.Nests(test_node_root).get('foo')) pake.node.packages.unregister(root=test_node_root, name='foo') # cleanup helpers.rmnode(testdir) helpers.rmnest(testdir)
def testGettingDependencyData(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.dependencies.set', 'name': 'foo', 'origin': 'http://pake.example.com', 'min': '0.2.4', 'max': '2.4.8'}, {'act': 'nest.config.dependencies.get', 'name': 'foo'} ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() #pake.config.nest.Dependencies(test_nest_root).set(name='foo', origin='http://pake.example.com', min='0.2.4', max='2.4.8').write() desired = {'origin': 'http://pake.example.com', 'min': '0.2.4', 'max': '2.4.8'} #self.assertEqual(desired, pake.config.nest.Dependencies(test_nest_root).get(name='foo')) self.assertEqual(desired, runner.getstack()[-1]) # cleanup helpers.rmnest(testdir)
def testAddingDirectory(self): helpers.gennest(testdir) # test logic pake.nest.package.adddir(test_nest_root, path='./ui', recursive=True, avoid=['__pycache__'], avoid_exts=['swp', 'pyc']) ifstream = open(os.path.join(test_nest_root, 'files.json')) files = json.loads(ifstream.read()) ifstream.close() desired = ['./ui/nest.py', './ui/nest.json', './ui/node.py', './ui/node.json', './ui/packages.py', './ui/packages.json', ] self.assertEqual(sorted(desired), sorted(files)) # cleanup helpers.rmnest(testdir)
def testAddingVersionsButCheckingIfItsNotLowerThanTheLastOne(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.versions.add', 'version': '0.0.1-beta.1'}, {'act': 'nest.config.versions.add', 'version': '0.0.1-alpha.17', 'check': True} ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic self.assertRaises(ValueError, runner.run) # assertNotRaises -- just run it; if no exception is raise everything's fine reqs = [{'act': 'nest.config.versions.add', 'version': '0.0.1-beta.1'}, {'act': 'nest.config.versions.add', 'version': '0.0.1', 'check': True} ] pake.transactions.runner.Runner(root=testdir, requests=reqs).run() # cleanup helpers.rmnest(testdir)
def testPackageBuildCreatesAllNecessaryFiles(self): helpers.gennest(testdir) version = '0.2.4.8' reqs = [{'act': 'nest.config.meta.set', 'key': 'name', 'value': 'test'}, {'act': 'nest.build', 'version': version} ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() self.assertIn(version, os.listdir(os.path.join(test_nest_root, 'versions'))) self.assertIn(version, pake.config.nest.Versions(test_nest_root)) self.assertIn('meta.json', os.listdir(os.path.join(test_nest_root, 'versions', version))) self.assertIn('dependencies.json', os.listdir(os.path.join(test_nest_root, 'versions', version))) self.assertIn('build.tar.xz', os.listdir(os.path.join(test_nest_root, 'versions', version))) # cleanup helpers.rmnest(testdir)
def testNestManagerDirectoriesWriting(self): """This test checks for correct initialization of all required directories. """ # preparation helpers.gennest(testdir) ifstream = open('./env/nest/required/directories.json') directories = json.loads(ifstream.read()) ifstream.close() # test logic if VERBOSE: print() for d in directories: path = os.path.join(test_nest_root, d) if VERBOSE: print("'{0}'".format(path)) self.assertEqual(True, os.path.isdir(path)) # cleanup helpers.rmnest(testdir)
def testListingDependenciesDetails(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.dependencies.set', 'name': 'foo'}, {'act': 'nest.config.dependencies.set', 'name': 'bar', 'origin': 'http://pake.example.com'}, {'act': 'nest.config.dependencies.set', 'name': 'baz', 'origin': 'http://pake.example.net', 'min': '0.2.4'}, {'act': 'nest.config.dependencies.list'} ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() deps = runner.getstack()[-1] self.assertIn({'name': 'foo'}, deps) self.assertIn({'name': 'bar', 'origin': 'http://pake.example.com'}, deps) self.assertIn({'name': 'baz', 'origin': 'http://pake.example.net', 'min': '0.2.4'}, deps) # cleanup helpers.rmnest(testdir)
def testListingDependenciesNames(self): helpers.gennest(testdir) reqs = [{'act': 'nest.config.dependencies.set', 'name': 'foo'}, {'act': 'nest.config.dependencies.set', 'name': 'bar'}, {'act': 'nest.config.dependencies.set', 'name': 'baz'}, {'act': 'nest.config.dependencies.getnames'} ] runner = pake.transactions.runner.Runner(root=testdir, requests=reqs) # test logic runner.run() #pake.config.nest.Dependencies(test_nest_root).set(name='foo').set(name='bar').set(name='baz').write() desired = ['foo', 'bar', 'baz'] self.assertEqual(sorted(desired), sorted(list(pake.config.nest.Dependencies(test_nest_root)))) self.assertEqual(sorted(desired), sorted(runner.getstack()[-1])) # cleanup helpers.rmnest(testdir)
def testPushingToNode(self): helpers.gennode(testdir) helpers.gennest(testdir) version = helpers.buildTestPackage(path=test_nest_root, version='2.4.8.16') # test logic if SERVER_ENABLED_TESTS: # set all required variables url = conf.test_remote_node_url host = conf.test_remote_node_host cwd = conf.test_remote_node_cwd username = conf.test_remote_node_username password = conf.test_remote_node_pass # setup connection to test server remote = pake.node.pusher.FTPPusher(host) remote.login(username, password) if cwd: remote.cwd(cwd) # setup environment pake.config.nest.Meta(test_nest_root).set('name', 'test').write() pake.config.node.Pushers(test_node_root).set(url=url, host=host, cwd=cwd).write() pake.node.packages.register(root=test_node_root, path=testdir) pake.node.packages.genpkglist(root=test_node_root) pake.node.pusher.genmirrorlist(test_node_root) # push to remote node pake.node.pusher.push(root=test_node_root, url=url, username=username, password=password, reupload=True) # test if it went OK remote.cwd('./packages/test/versions/{0}'.format(version)) files = remote.ls() self.assertIn('build.tar.xz', files) self.assertIn('meta.json', files) self.assertIn('dependencies.json', files) remote.close() else: warnings.warn( 'test not run: flag: SERVER_ENABLED_TESTS = {0}'.format( SERVER_ENABLED_TESTS)) # cleanup helpers.rmnode(testdir) helpers.rmnest(testdir) if SERVER_ENABLED_TESTS: pass # nothing is needed here (unless we want to wipe remote totally clean)
def testRemovingADependency(self): helpers.gennest(testdir) # test logic pake.config.nest.Dependencies(test_nest_root).set( name='foo', origin='http://pake.example.com', min='0.2.4', max='2.4.8').write() pake.config.nest.Dependencies(test_nest_root).remove( name='foo').write() ifstream = open(os.path.join(test_nest_root, 'dependencies.json')) dep = json.loads(ifstream.read()) ifstream.close() desired = {} self.assertEqual(desired, dep) # cleanup helpers.rmnest(testdir)