diff options
Diffstat (limited to 'cbc/tests')
-rw-r--r-- | cbc/tests/__init__.py | 0 | ||||
-rw-r--r-- | cbc/tests/data/test.ini | 47 | ||||
-rw-r--r-- | cbc/tests/test_cbc.py | 66 |
3 files changed, 113 insertions, 0 deletions
diff --git a/cbc/tests/__init__.py b/cbc/tests/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cbc/tests/__init__.py diff --git a/cbc/tests/data/test.ini b/cbc/tests/data/test.ini new file mode 100644 index 0000000..ec67f6e --- /dev/null +++ b/cbc/tests/data/test.ini @@ -0,0 +1,47 @@ +[cbc_cgi] +local_server: true +local_port: 8888 +local_sources: /srv/conda/sources +protocol: http +url: ${cbc_cgi:protocol}://localhost:${cbc_cgi:local_port} + +[package] +name: test +version: 1.0.0 + +[about] +home: http://example.com/${package:name} +license: GPL +summary: ${package:name} is a test package +readme: README.md + +[source] +fn: ${package:name}-${package:version}.tar.gz +url: ${cbc_cgi:url}/${fn} + +[build] +number: 1 + +[requirements] +build: + python + setuptools + +run: + python + + +[cbc_build] +prefix: /usr/local +win_prefix: c:\anaconda3\ + + +linux: + python setup.py install || exit 1 + +darwin: + python setup.py install || exit 1 + +windows: + python setup.py install + if errorlevel 1 exit 1
\ No newline at end of file diff --git a/cbc/tests/test_cbc.py b/cbc/tests/test_cbc.py new file mode 100644 index 0000000..84e4e67 --- /dev/null +++ b/cbc/tests/test_cbc.py @@ -0,0 +1,66 @@ +import cbc +import nose +import nose.tools +import os +import sys +from cbc.exceptions import IncompleteEnv, MetaDataError + + +class TestCBC(object): + def setUp(self): + lookup = os.path.join(os.path.dirname(__file__), 'data') + output = os.path.join(lookup, 'output') + os.makedirs(output, exist_ok=True) + os.environ['CBC_HOME'] = output + self.env = cbc.environment.Environment() + self.ini = os.path.join(lookup, 'test.ini') + + + def tearDown(self): + pass + + @nose.tools.raises(OSError) + def test_spec_does_not_exist(self): + spec = cbc.meta.MetaData('deadbeefcafe.ini', self.env) + + @nose.tools.raises(IncompleteEnv) + def test_spec_incomplete_environment(self): + '''test_spec_incomplete_environment (a valid ~/.cbcrc will cause this to fail) + ''' + del os.environ['CBC_HOME'] + env = cbc.environment.Environment() + + @nose.tools.raises(MetaDataError) + def test_spec_environment_instance(self): + env = '' + cbc_meta = cbc.meta.MetaData(self.ini, env) + + def test_spec_standalone_build_data(self): + cbc_meta = cbc.meta.MetaData(self.ini, self.env) + nose.tools.assert_in('cbc_build', cbc_meta.local_metadata) + + def test_spec_standalone_cgi_server_data(self): + cbc_meta = cbc.meta.MetaData(self.ini, self.env) + nose.tools.assert_in('cbc_cgi', cbc_meta.local_metadata) + + def test_spec_no_ini_and_yaml_crosstalk(self): + cbc_meta = cbc.meta.MetaData(self.ini, self.env) + nose.tools.assert_not_in('settings', cbc_meta.conda_metadata) + nose.tools.assert_not_in('cbc_build', cbc_meta.conda_metadata) + nose.tools.assert_not_in('cbc_cgi', cbc_meta.conda_metadata) + + def test_spec_outputs_valid_conda_metadata(self): + import conda_build.metadata + cbc_meta = cbc.meta.MetaData(self.ini, self.env) + cbc_meta.env.mkpkgdir(cbc_meta.local['package']['name']) + cbc_meta.render_scripts() + + # Test against conda's build system + conda_meta = conda_build.metadata.MetaData(self.env.pkgdir) + nose.tools.assert_is_instance(conda_meta, conda_build.metadata.MetaData) + nose.tools.assert_equal(conda_meta.dist(), 'test-1.0.0-py34_1') + + + +if __name__ == '__main__': + nose.main(argv=sys.argv) |