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