IS-04-03 test_01_node_mdns_with_txt fails 'api_auth' check when it shouldn't
Looks like zeroconf is automagically mapping the TXT record string value `false` to the Python `False`. We need to actually check the string value, since the spec is fierce about lowercase (and who knows what else zeroconf may evaluate and turn into a Boolean).
diff --git a/IS0401Test.py b/IS0401Test.py
index 5b3251d..dd287cd 100644
--- a/IS0401Test.py
+++ b/IS0401Test.py
@@ -605,7 +605,8 @@ class IS0401Test(GenericTest):
                 if self.is04_utils.compare_api_version(api["version"], "v1.3") >= 0:
                     if "api_auth" not in properties:
                         return test.FAIL("No 'api_auth' TXT record found in Node API advertisement.")
-                    elif properties["api_auth"] not in ["true", "false"]:
+                    elif not isinstance(properties["api_auth"], bool):
+                        # zeroconf translates 'true' to True and 'false' to False automatically
                         return test.FAIL("API authorization ('api_auth') TXT record is not one of 'true' or 'false'.")
 
                 return test.PASS()
diff --git a/IS0402Test.py b/IS0402Test.py
index 4cd6f96..78a300a 100644
--- a/IS0402Test.py
+++ b/IS0402Test.py
@@ -106,7 +106,8 @@ class IS0402Test(GenericTest):
                 if self.is04_reg_utils.compare_api_version(api["version"], "v1.3") >= 0:
                     if "api_auth" not in properties:
                         return test.FAIL("No 'api_auth' TXT record found in {} advertisement.".format(api["name"]))
-                    elif properties["api_auth"] not in ["true", "false"]:
+                    elif not isinstance(properties["api_auth"], bool):
+                        # zeroconf translates 'true' to True and 'false' to False automatically
                         return test.FAIL("API authorization ('api_auth') TXT record is not one of 'true' or 'false'.")
 
                 return test.PASS()
diff --git a/IS0403Test.py b/IS0403Test.py
index e7c55ed..cdf4d02 100644
--- a/IS0403Test.py
+++ b/IS0403Test.py
@@ -83,7 +83,8 @@ class IS0403Test(GenericTest):
                 if self.is04_utils.compare_api_version(api["version"], "v1.3") >= 0:
                     if "api_auth" not in properties:
                         return test.FAIL("No 'api_auth' TXT record found in Node API advertisement.")
-                    elif properties["api_auth"] not in ["true", "false"]:
+                    elif not isinstance(properties["api_auth"], bool):
+                        # zeroconf translates 'true' to True and 'false' to False automatically
                         return test.FAIL("API authorization ('api_auth') TXT record is not one of 'true' or 'false'.")
 
                 return test.PASS()

['IS0402Test.py', 'IS0401Test.py', 'IS0403Test.py']