# # Copyright (C) 2018 Bloomberg Finance LP # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library. If not, see . # # Authors: Chandan Singh # import os import tarfile import pytest from tests.testutils import cli # Project directory DATA_DIR = os.path.join( os.path.dirname(os.path.realpath(__file__)), "project", ) @pytest.mark.datafiles(DATA_DIR) def test_source_bundle(cli, tmpdir, datafiles): project_path = os.path.join(datafiles.dirname, datafiles.basename) element_name = 'source-bundle/source-bundle-hello.bst' normal_name = 'source-bundle-source-bundle-hello' # Verify that we can correctly produce a source-bundle args = ['source-bundle', element_name, '--directory', str(tmpdir)] result = cli.run(project=project_path, args=args) result.assert_success() # Verify that the source-bundle contains our sources and a build script with tarfile.open(os.path.join(str(tmpdir), '{}.tar.gz'.format(normal_name))) as bundle: assert os.path.join(normal_name, 'source', normal_name, 'llamas.txt') in bundle.getnames() assert os.path.join(normal_name, 'build.sh') in bundle.getnames()