k8s.io/kubernetes@v1.31.0-alpha.0.0.20240520171757-56147500dadc/hack/boilerplate/boilerplate_test.py (about)

     1  #!/usr/bin/env python3
     2  
     3  # Copyright 2016 The Kubernetes Authors.
     4  #
     5  # Licensed under the Apache License, Version 2.0 (the "License");
     6  # you may not use this file except in compliance with the License.
     7  # You may obtain a copy of the License at
     8  #
     9  #     http://www.apache.org/licenses/LICENSE-2.0
    10  #
    11  # Unless required by applicable law or agreed to in writing, software
    12  # distributed under the License is distributed on an "AS IS" BASIS,
    13  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  # See the License for the specific language governing permissions and
    15  # limitations under the License.
    16  
    17  import os
    18  import sys
    19  import unittest
    20  
    21  from io import StringIO
    22  
    23  import boilerplate
    24  
    25  class TestBoilerplate(unittest.TestCase):
    26      """
    27      Note: run this test from the hack/boilerplate directory.
    28  
    29      $ python -m unittest boilerplate_test
    30      """
    31  
    32      def test_boilerplate(self):
    33          os.chdir("test/")
    34  
    35          class Args:
    36              filenames = []
    37              rootdir = "."
    38              boilerplate_dir = "../"
    39              verbose = True
    40  
    41          # capture stdout
    42          old_stdout = sys.stdout
    43          sys.stdout = StringIO()
    44  
    45          boilerplate.args = Args
    46          ret = boilerplate.main()
    47          self.assertEqual(ret, 0)
    48  
    49          output = sorted(sys.stdout.getvalue().split())
    50  
    51          sys.stdout = old_stdout
    52  
    53          self.assertEqual(output, ["././fail.go", "././fail.py"])