Ejemplo n.º 1
0
def test_filemanager_get_queries_error() -> None:
    """
    Check if we can properly handle errors
    in case of unsuccessful query file loading
    :return: None
    """
    filemanager = GrinderFileManager()
    with raises(GrinderFileManagerOpenError):
        filemanager.get_queries(queries_file="not_exists.json")
Ejemplo n.º 2
0
def test_filemanager_get_malformed_queries() -> None:
    """
    Check case when input json is exists, but
    file itself is malformed or contains
    some unparseable constructions
    :return: None
    """
    filemanager = GrinderFileManager()
    with raises(GrinderFileManagerJsonDecoderError):
        filemanager.get_queries(queries_file=str(
            TestDefaultFilemanagerValues.TEST_DATA_QUERIES_PATH.joinpath(
                TestDefaultFilemanagerValues.TEST_MALFORMED_FILE)))
Ejemplo n.º 3
0
def test_filemanager_get_queries_success() -> None:
    """
    Check if we can successfully get query file
    from queries/* directory
    :return: None
    """
    filemanager = GrinderFileManager()
    queries = filemanager.get_queries(
        queries_file=str(
            TestDefaultFilemanagerValues.TEST_DATA_QUERIES_PATH.joinpath(
                TestDefaultFilemanagerValues.TEST_QUERIES_FILE
            )
        )
    )
    for query_obj in queries:
        assert sorted(query_obj.keys()) == sorted(
            [
                "vendor",
                "product",
                "shodan_queries",
                "censys_queries",
                "scripts",
                "vendor_confidence",
            ]
        )
        assert (
            isinstance(query_obj.get("vendor"), str) and query_obj.get("vendor") != ""
        )
        assert (
            isinstance(query_obj.get("product"), str) and query_obj.get("product") != ""
        )
        assert (
            isinstance(query_obj.get("shodan_queries"), list)
            and query_obj.get("shodan_queries") != []
        )
        for query in query_obj.get("shodan_queries"):
            assert sorted(query.keys()) == sorted(["query", "query_confidence"])
        assert (
            isinstance(query_obj.get("censys_queries"), list)
            and query_obj.get("censys_queries") != []
        )
        for query in query_obj.get("censys_queries"):
            assert sorted(query.keys()) == sorted(["query", "query_confidence"])
        assert sorted(query_obj.get("scripts").keys()) == sorted(
            ["py_script", "nse_script"]
        )
        assert (
            isinstance(query_obj.get("vendor_confidence"), str)
            and query_obj.get("vendor_confidence") != ""
        )