yocto-compat-layer.py: allow README with suffix

It may be useful to append a suffix denoting the file format. For
example, README.rst is rendered differently when viewed on Github, and
also helps editors to switch to a mode more suitable for the format.

The tests uses a file pattern to find the README file(s) and treats
the one with the shortest name as the main one which must not be
empty.

(From OE-Core rev: 0abc29f135d7f870168d9676395f3a4bb77174b8)

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Patrick Ohly 2017-06-27 17:33:42 +02:00 committed by Richard Purdie
parent 8f20c03dd6
commit 026586965a
1 changed files with 10 additions and 4 deletions

View File

@ -1,6 +1,7 @@
# Copyright (C) 2017 Intel Corporation
# Released under the MIT license (see COPYING.MIT)
import glob
import os
import unittest
from compatlayer import get_signatures, LayerType, check_command, get_depgraph
@ -8,15 +9,20 @@ from compatlayer.case import OECompatLayerTestCase
class CommonCompatLayer(OECompatLayerTestCase):
def test_readme(self):
readme_file = os.path.join(self.tc.layer['path'], 'README')
self.assertTrue(os.path.isfile(readme_file),
msg="Layer doesn't contains README file.")
# The top-level README file may have a suffix (like README.rst or README.txt).
readme_files = glob.glob(os.path.join(self.tc.layer['path'], 'README*'))
self.assertTrue(len(readme_files) > 0,
msg="Layer doesn't contains README file.")
# There might be more than one file matching the file pattern above
# (for example, README.rst and README-COPYING.rst). The one with the shortest
# name is considered the "main" one.
readme_file = sorted(readme_files)[0]
data = ''
with open(readme_file, 'r') as f:
data = f.read()
self.assertTrue(data,
msg="Layer contains README file but is empty.")
msg="Layer contains a README file but it is empty.")
def test_parse(self):
check_command('Layer %s failed to parse.' % self.tc.layer['name'],