You've already forked gnatdashboard
mirror of
https://github.com/AdaCore/gnatdashboard.git
synced 2026-02-12 12:30:42 -08:00
109 lines
3.2 KiB
Python
109 lines
3.2 KiB
Python
"""Check the integrity of the GNAThub Python module."""
|
|
|
|
import GNAThub
|
|
|
|
import os.path
|
|
import sys
|
|
|
|
from support.asserts import assertEqual, assertIn, assertTrue
|
|
from support.helpers import uniq
|
|
|
|
# The base directory for PATH comparisons
|
|
BASEDIR = os.path.dirname(os.path.realpath(sys.argv[0]))
|
|
|
|
|
|
def relpath(path):
|
|
"""Return the relative path to :param:`path` from BASEDIR.
|
|
|
|
:param str path: The full path.
|
|
:returns: str
|
|
"""
|
|
|
|
return os.path.relpath(path, BASEDIR)
|
|
|
|
|
|
# GNAThub.Project.name
|
|
assertEqual(GNAThub.Project.name(), 'Disabled')
|
|
|
|
# GNAThub.Project.path
|
|
assertEqual(relpath(GNAThub.Project.path()), 'disabled.gpr')
|
|
|
|
# GNAThub.Project.object_dir
|
|
assertEqual(relpath(GNAThub.Project.object_dir()), 'obj')
|
|
assertTrue(os.path.isdir(GNAThub.Project.object_dir()))
|
|
|
|
# GNAThub.Project.source_dirs
|
|
source_dirs = GNAThub.Project.source_dirs()
|
|
assertEqual(len(source_dirs), 1)
|
|
assertIn('Disabled', source_dirs)
|
|
assertEqual(relpath(source_dirs['Disabled'][0]), 'src')
|
|
|
|
# GNAThub.Project.source_files
|
|
source_files = GNAThub.Project.source_files()
|
|
assertEqual(len(source_files), 1)
|
|
assertIn('Disabled', source_files)
|
|
assertEqual(
|
|
sorted([os.path.basename(sfile) for sfile in source_files['Disabled']]),
|
|
sorted(['f.adb', 'f.ads', 'simple.adb'])
|
|
)
|
|
|
|
# Check consistency between GNAThub.Project.source_dirs() and
|
|
# GNAThub.Project.source_files().
|
|
assertEqual(
|
|
sorted(uniq([
|
|
os.path.normpath(os.path.dirname(sfile))
|
|
for sfile in source_files['Disabled']
|
|
])),
|
|
sorted([os.path.normpath(dir) for dir in source_dirs['Disabled']])
|
|
)
|
|
|
|
# GNAThub.Project.source_file
|
|
filename = GNAThub.Project.source_file('simple.adb')
|
|
expected = 'src%ssimple.adb' % os.path.sep
|
|
assertEqual(relpath(filename), expected)
|
|
assertTrue(os.path.isfile(filename))
|
|
|
|
# GNAThub.Project.property_as_string
|
|
project_name = GNAThub.Project.property_as_string('Project_Name')
|
|
assertEqual(project_name, 'My_Disabled_Project')
|
|
|
|
project_key = GNAThub.Project.property_as_string('Project_Key')
|
|
assertEqual(project_key, 'Disabled :: Core')
|
|
|
|
project_version = GNAThub.Project.property_as_string('Project_Version')
|
|
assertEqual(project_version, '1.2.1b')
|
|
|
|
encoding = GNAThub.Project.property_as_string('Source_Encoding')
|
|
assertEqual(encoding, 'My_Custom_Encoding')
|
|
|
|
# GNAThub.Project.property_as_list
|
|
plugins = GNAThub.Project.property_as_list('Plugins')
|
|
assertIn('sonar-config', plugins)
|
|
|
|
local_repo = GNAThub.Project.property_as_string('Local_Repository')
|
|
assertEqual(relpath(local_repo), 'local_repo')
|
|
|
|
main = GNAThub.Project.property_as_string('Main', package='')
|
|
assertEqual(main, 'simple.adb')
|
|
|
|
exec_dir = GNAThub.Project.property_as_string('Exec_Dir', package='')
|
|
assertEqual(exec_dir, 'src')
|
|
|
|
plugins_off = GNAThub.Project.property_as_list('Plugins_Off')
|
|
assertIn('gnatcheck', plugins_off)
|
|
assertIn('gnatmetric', plugins_off)
|
|
assertIn('gcov', plugins_off)
|
|
assertIn('codepeer', plugins_off)
|
|
|
|
# GNAThub.Project.scenaria_switches
|
|
scenario_vars = GNAThub.Project.scenario_switches()
|
|
expected_vars = (
|
|
'-XBUILD_MODE=Production',
|
|
'-XVERSION=test-0.0.0',
|
|
'-XBUILD_DIR=/some/user/workspace/project/build/dir',
|
|
'-XPROCESSORS=2'
|
|
)
|
|
assertEqual(len(scenario_vars), len(expected_vars))
|
|
for var in expected_vars:
|
|
assertIn(var, scenario_vars)
|