
Adds tooling and enhances README documentation around the backlog specs process. - To move a spec from the backlog to the current release, we can now use the ``move-spec`` tox target, e.g. tox -e move-spec -- [-n] [-v] specs/backlog/approved/great-idea.rst specs/train/approved - To abandon a backlog spec - i.e. move it from specs/backlog/approved to the (new) specs/abandoned directory, we can now use the ``abandon-spec`` tox target, e.g. tox -e abandon-spec -- [-n] [-v] specs/backlog/it-was-a-great-idea.rst These utilities will move the specified spec into the target directory and create an appropriate redirect for it. To make it so, this commit factors out a helper method that a) moves a spec from one subdirectory to another and b) adds a redirect for it. This is used by the existing ``move-implemented-specs`` utility as well as the new ``move-spec`` and ``abandon-spec``. While I was in here, I spruced up the verbose output (including for move-implemented-specs) to be a bit more readable. Change-Id: I322eecbacd5dc52accf6ac69c9fe1116be8c216f
35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import glob
|
|
import os
|
|
|
|
import testtools
|
|
|
|
|
|
class TestDirectories(testtools.TestCase):
|
|
|
|
def test_directories(self):
|
|
releases = [x.split('/')[1] for x in glob.glob('specs/*/')]
|
|
for release in releases:
|
|
if release == 'abandoned':
|
|
continue
|
|
files = os.listdir("specs/%s/" % release)
|
|
valid = ['redirects', 'implemented', 'approved']
|
|
for name in files:
|
|
if name.startswith('.'):
|
|
continue
|
|
self.assertIn(name, valid,
|
|
"Found unexpected file in "
|
|
"'specs/%s', specs should be submitted to "
|
|
"'specs/%s/approved'" % (release, release))
|