forked from platformio/platformio-core
Update tests according new development platforms architecture // Issue #479
This commit is contained in:
@ -92,6 +92,7 @@ def _get_boards(installed=False):
|
||||
boards = _new_boards
|
||||
return boards
|
||||
|
||||
|
||||
def _ouput_boards_json(query, installed=False):
|
||||
result = []
|
||||
for board in _get_boards(installed):
|
||||
|
@ -23,6 +23,8 @@ import click
|
||||
|
||||
from platformio import app, exception, telemetry, util
|
||||
from platformio.commands.lib import lib_install as cmd_lib_install
|
||||
from platformio.commands.platform import \
|
||||
platform_install as cmd_platform_install
|
||||
from platformio.libmanager import LibraryManager
|
||||
from platformio.managers.platform import PlatformFactory
|
||||
|
||||
@ -186,7 +188,6 @@ class EnvironmentProcessor(object):
|
||||
if "platform" not in self.options:
|
||||
raise exception.UndefinedEnvPlatform(self.name)
|
||||
|
||||
platform = self.options['platform']
|
||||
build_vars = self._get_build_variables()
|
||||
build_targets = self._get_build_targets()
|
||||
|
||||
@ -196,7 +197,17 @@ class EnvironmentProcessor(object):
|
||||
if "lib_install" in self.options:
|
||||
_autoinstall_libs(self.cmd_ctx, self.options['lib_install'])
|
||||
|
||||
p = PlatformFactory.newPlatform(platform)
|
||||
platform = self.options['platform']
|
||||
version = None
|
||||
if "@" in platform:
|
||||
platform, version = platform.rsplit("@", 1)
|
||||
|
||||
try:
|
||||
p = PlatformFactory.newPlatform(platform)
|
||||
except exception.UnknownPlatform:
|
||||
self.cmd_ctx.invoke(cmd_platform_install, platforms=[platform])
|
||||
p = PlatformFactory.newPlatform(platform)
|
||||
|
||||
return p.run(build_vars, build_targets, self.verbose_level)
|
||||
|
||||
|
||||
|
@ -125,6 +125,7 @@ class PlatformFactory(object):
|
||||
name, requirements)
|
||||
if _manifest:
|
||||
platform_dir = dirname(_manifest['_manifest_path'])
|
||||
|
||||
if not platform_dir:
|
||||
raise exception.UnknownPlatform(
|
||||
name if not requirements else "%s@%s" % (name, requirements))
|
||||
|
@ -16,16 +16,16 @@ import json
|
||||
|
||||
from platformio import util
|
||||
from platformio.commands.boards import cli as cmd_boards
|
||||
from platformio.commands.platforms import \
|
||||
platforms_search as cmd_platforms_search
|
||||
from platformio.commands.platform import \
|
||||
platform_search as cmd_platform_search
|
||||
|
||||
|
||||
def test_board_json_output(platformio_setup, clirunner, validate_cliresult):
|
||||
result = clirunner.invoke(cmd_boards, ["cortex", "--json-output"])
|
||||
result = clirunner.invoke(cmd_boards, ["mbed", "--json-output"])
|
||||
validate_cliresult(result)
|
||||
boards = json.loads(result.output)
|
||||
assert isinstance(boards, dict)
|
||||
assert "teensy30" in boards
|
||||
assert isinstance(boards, list)
|
||||
assert any(["mbed" in b['frameworks'] for b in boards])
|
||||
|
||||
|
||||
def test_board_raw_output(platformio_setup, clirunner, validate_cliresult):
|
||||
@ -36,16 +36,20 @@ def test_board_raw_output(platformio_setup, clirunner, validate_cliresult):
|
||||
|
||||
def test_board_options(platformio_setup, clirunner, validate_cliresult):
|
||||
required_opts = set(
|
||||
["build", "platform", "upload", "name"])
|
||||
["fcpu", "frameworks", "id", "mcu", "name", "platform"])
|
||||
|
||||
# fetch available platforms
|
||||
result = clirunner.invoke(cmd_platforms_search, ["--json-output"])
|
||||
result = clirunner.invoke(cmd_platform_search, ["--json-output"])
|
||||
validate_cliresult(result)
|
||||
search_result = json.loads(result.output)
|
||||
assert isinstance(search_result, list)
|
||||
assert len(search_result)
|
||||
platforms = [item['type'] for item in search_result]
|
||||
platforms = [item['name'] for item in search_result]
|
||||
|
||||
for _, opts in util.get_boards().iteritems():
|
||||
assert required_opts.issubset(set(opts))
|
||||
assert opts['platform'] in platforms
|
||||
result = clirunner.invoke(cmd_boards, ["mbed", "--json-output"])
|
||||
validate_cliresult(result)
|
||||
boards = json.loads(result.output)
|
||||
|
||||
for board in boards:
|
||||
assert required_opts.issubset(set(board))
|
||||
assert board['platform'] in platforms
|
||||
|
@ -12,10 +12,12 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import json
|
||||
from os import makedirs, getcwd
|
||||
from os.path import getsize, isdir, isfile, join
|
||||
|
||||
from platformio.commands.init import cli
|
||||
from platformio.commands.boards import cli as cmd_boards
|
||||
from platformio import util
|
||||
|
||||
|
||||
@ -48,11 +50,14 @@ def test_init_special_board(platformio_setup, clirunner, validate_cliresult):
|
||||
validate_cliresult(result)
|
||||
validate_pioproject(getcwd())
|
||||
|
||||
uno = util.get_boards("uno")
|
||||
result = clirunner.invoke(cmd_boards, ["Arduino Uno", "--json-output"])
|
||||
validate_cliresult(result)
|
||||
boards = json.loads(result.output)
|
||||
|
||||
config = util.get_project_config()
|
||||
expected_result = [
|
||||
("platform", str(uno['platform'])),
|
||||
("framework", str(uno['frameworks'][0])),
|
||||
("platform", str(boards[0]['platform'])),
|
||||
("framework", str(boards[0]['frameworks'][0])),
|
||||
("board", "uno")
|
||||
]
|
||||
|
||||
|
@ -14,14 +14,14 @@
|
||||
|
||||
import json
|
||||
|
||||
from platformio.commands.platforms import \
|
||||
platforms_list as cmd_platforms_list
|
||||
from platformio.commands.platforms import \
|
||||
platforms_search as cmd_platforms_search
|
||||
from platformio.commands.platform import \
|
||||
platform_list as cmd_platform_list
|
||||
from platformio.commands.platform import \
|
||||
platform_search as cmd_platform_search
|
||||
|
||||
|
||||
def test_list_json_output(clirunner, validate_cliresult):
|
||||
result = clirunner.invoke(cmd_platforms_list, ["--json-output"])
|
||||
result = clirunner.invoke(cmd_platform_list, ["--json-output"])
|
||||
validate_cliresult(result)
|
||||
list_result = json.loads(result.output)
|
||||
assert isinstance(list_result, list)
|
||||
@ -31,23 +31,23 @@ def test_list_json_output(clirunner, validate_cliresult):
|
||||
|
||||
|
||||
def test_list_raw_output(clirunner, validate_cliresult):
|
||||
result = clirunner.invoke(cmd_platforms_list)
|
||||
result = clirunner.invoke(cmd_platform_list)
|
||||
validate_cliresult(result)
|
||||
assert "teensy" in result.output
|
||||
|
||||
|
||||
def test_search_json_output(clirunner, validate_cliresult):
|
||||
result = clirunner.invoke(cmd_platforms_search,
|
||||
result = clirunner.invoke(cmd_platform_search,
|
||||
["arduino", "--json-output"])
|
||||
validate_cliresult(result)
|
||||
search_result = json.loads(result.output)
|
||||
assert isinstance(search_result, list)
|
||||
assert len(search_result)
|
||||
platforms = [item['type'] for item in search_result]
|
||||
platforms = [item['name'] for item in search_result]
|
||||
assert "atmelsam" in platforms
|
||||
|
||||
|
||||
def test_search_raw_output(clirunner, validate_cliresult):
|
||||
result = clirunner.invoke(cmd_platforms_search, ["arduino"])
|
||||
result = clirunner.invoke(cmd_platform_search, ["arduino"])
|
||||
validate_cliresult(result)
|
||||
assert "teensy" in result.output
|
||||
|
Reference in New Issue
Block a user