from os import getcwd, mkdir from os.path import join, isfile, getsize from apio.commands.init import cli as cmd_init def validate_apio_ini(current_dir): path = join(current_dir, 'apio.ini') assert isfile(path) and getsize(path) > 0 def validate_scons(apioproject_dir): path = join(apioproject_dir, 'SConstruct') assert isfile(path) and getsize(path) > 0 def test_init(clirunner, validate_cliresult): result = clirunner.invoke(cmd_init) validate_cliresult(result) def test_init_wrong_board(clirunner, validate_cliresult): with clirunner.isolated_filesystem(): result = clirunner.invoke(cmd_init, ['--board', 'missed_board']) assert result.exit_code == 1 assert 'Error: no such board' in result.output def test_init_board(clirunner, validate_cliresult): with clirunner.isolated_filesystem(): # apio init --board icezum result = clirunner.invoke(cmd_init, ['--board', 'icezum']) validate_cliresult(result) validate_apio_ini(getcwd()) assert 'Creating apio.ini file ...' in result.output assert 'has been successfully created!' in result.output # apio init --board icezum result = clirunner.invoke(cmd_init, ['--board', 'icezum'], input='y') validate_cliresult(result) validate_apio_ini(getcwd()) assert 'Warning' in result.output assert 'file already exists' in result.output assert 'Do you want to replace it?' in result.output assert 'has been successfully created!' in result.output def test_init_scons(clirunner, validate_cliresult): with clirunner.isolated_filesystem(): # apio init --scons result = clirunner.invoke(cmd_init, ['--scons']) validate_cliresult(result) validate_scons(getcwd()) assert 'Creating SConstruct file ...' in result.output assert 'has been successfully created!' in result.output # apio init --scons result = clirunner.invoke(cmd_init, ['--scons'], input='y') validate_cliresult(result) validate_scons(getcwd()) assert 'Warning' in result.output assert 'file already exists' in result.output assert 'Do you want to replace it?' in result.output assert 'has been successfully created!' in result.output def test_init_scons_project_dir(clirunner, validate_cliresult): with clirunner.isolated_filesystem(): dir_name = 'tmp' mkdir(dir_name) # apio init --scons --project-dir=tmp result = clirunner.invoke(cmd_init, ['--scons', '--project-dir=tmp']) validate_cliresult(result) validate_scons(join(getcwd(), dir_name)) assert 'Creating SConstruct file ...' in result.output assert 'has been successfully created!' in result.output