Python Forum

Full Version: AttributeError: type object 'FunctionNode' has no attribute '_TestValidateFuncLabel__
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have a file to validate the label
#configmanager.py

class FunctionNode(object):
    def __validate_func_label(self, func_label):
        pattern = re.compile('^fn[1-9][0-9]{0,1}$')
        if not pattern.match(func_label):
            raise Exception(
                f"Invalid value {func_label} for function label in function config.")
and I have to write a test case using Unit Testing. Test case will check if user enters fn is from fn1 to fn99, it will pass. Otherwise if fn out of range such as fn0 or fn100 then it fail. I writed a TestClass that should have passed
#test__validate_func_label.py

import unittest
import re
from configmanager import FunctionNode

class TestValidateFuncLabel(unittest.TestCase): 

    def test_fn_within_range(self):
        res = FunctionNode.__validate_func_label('fnsd1')
        pattern = re.compile('^fn1$')
        self.assertIn(pattern, range('^fn1$', '^fn100$'))



if __name__ == "__main__":
    unittest.main()
But it has raised an error.
Error:
(base) D:\Python>python -u "d:\Python\Analyzer\toshiba\yieldnews\analyzer\test__validate_func_label.py" E ====================================================================== ERROR: test_fn_within_range (__main__.TestValidateFuncLabel) ---------------------------------------------------------------------- Traceback (most recent call last): File "d:\Python\Analyzer\toshiba\yieldnews\analyzer\test__validate_func_label.py", line 8, in test_fn_within_range res = FunctionNode.__validate_func_label('fnsd1') AttributeError: type object 'FunctionNode' has no attribute '_TestValidateFuncLabel__validate_func_label' ---------------------------------------------------------------------- Ran 1 test in 0.000s FAILED (errors=1)
I don't know where am I wrong ? Can you fix it ?