"""InventarioScope (constante com chaves float) nao pode travar no 8.3 e deve ter o mesmo valor do 7.4."""
import subprocess
import unittest

SCRIPT = "/var/www/html/accia-php83/tools/migracao-php83/php/inventario_scope.php"


def _rodar(container, raiz):
    r = subprocess.run(["docker", "exec", container, "timeout", "20", "php", "-d", "display_errors=stderr", SCRIPT, raiz],
                       capture_output=True, text=True, encoding="utf8")
    return r.returncode, r.stdout.strip()


class InventarioScopeTest(unittest.TestCase):
    def test_instancia_sem_travar_e_mesmo_valor_do_74(self):
        cod_b, base = _rodar("php74_val", "/var/www/html/accia")
        cod_a, alvo = _rodar("php83_apache", "/var/www/html/accia-php83")
        self.assertEqual(cod_b, 0, base)
        self.assertEqual(cod_a, 0, "travou ou falhou no 8.3 (124 = timeout)")
        self.assertEqual(alvo, base)


if __name__ == "__main__":
    unittest.main()
