Remove unnecessary integratino tests

Reviewers: buda

Reviewed By: buda

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D566
This commit is contained in:
Mislav Bradac 2017-07-18 15:29:11 +02:00
parent fee59a7ec2
commit 32ed2d7ab8
10 changed files with 6 additions and 202 deletions

View File

@ -134,12 +134,9 @@ foreach(file_path ${__HARDCODED_FILES})
get_filename_component(file_name ${file_path} NAME)
configure_file(${file_path} ${CMAKE_BINARY_DIR}/tests/integration/hardcoded_query/${file_name} COPYONLY)
endforeach()
file(GLOB __STREAM
${CMAKE_SOURCE_DIR}/tests/integration/stream/*)
foreach(file_path ${__STREAM})
get_filename_component(file_name ${file_path} NAME)
configure_file(${file_path} ${CMAKE_BINARY_DIR}/tests/integration/stream/${file_name} COPYONLY)
endforeach()
set(print_record_stream_path ${CMAKE_SOURCE_DIR}/tests/integration/print_record_stream.hpp)
get_filename_component(print_record_stream_file_name ${print_record_stream_path} NAME)
configure_file(${print_record_stream_path} ${CMAKE_BINARY_DIR}/tests/integration/${print_record_stream_file_name} COPYONLY)
# -----------------------------------------------------------------------------
# linter setup (clang-tidy)

View File

@ -1,48 +0,0 @@
from neo4j.v1 import GraphDatabase, basic_auth, types
# create session
driver = GraphDatabase.driver("bolt://localhost",
auth=basic_auth("neo4j", "neo4j"),
encrypted=0)
session = driver.session()
queries = [];
queries.append((True, "CREATE (n {age: 32}) RETURN n"))
queries.append((True, "CREATE (n {name: \"Max\", age: 21}) RETURN n"))
queries.append((True, "CREATE (n {name: \"Paul\", age: 21}) RETURN n"))
queries.append((True, "CREATE (n:PERSON {name: \"Chris\", age: 20}) RETURN n"))
queries.append((True, "CREATE (n:PERSON:STUDENT {name: \"Marko\", age: 19}) RETURN n"))
queries.append((True, "CREATE (n:TEST {string: \"Properties test\", integer: 100, float: 232.2323, bool: True}) RETURN n"))
queries.append((True, "MATCH (n) WHERE ID(n)=0 RETURN n"))
queries.append((True, "MATCH (n) WHERE ID(n)=1 RETURN n"))
queries.append((True, "MATCH (n) WHERE ID(n)=2 RETURN n"))
queries.append((True, "MATCH (n) WHERE ID(n)=3 RETURN n"))
queries.append((True, "MATCH (n) WHERE ID(n)=4 RETURN n"))
queries.append((True, "MATCH (n) WHERE ID(n)=5 RETURN n"))
queries.append((True, "MATCH (n) RETURN n"));
queries.append((True, "MATCH (n:PERSON) RETURN n"));
queries.append((True, "MATCH (n1), (n2) WHERE ID(n1)=0 AND ID(n2)=1 CREATE (n1)-[r:IS]->(n2) RETURN r"))
queries.append((True, "MATCH (n1), (n2) WHERE ID(n1)=1 AND ID(n2)=2 CREATE (n1)-[r:IS {name: \"test\", age: 23}]->(n2) RETURN r"))
queries.append((True, "MATCH (n1), (n2) WHERE ID(n1)=2 AND ID(n2)=0 CREATE (n1)-[r:IS {name: \"test\", age: 23}]->(n2) RETURN r"))
queries.append((True, "MATCH (n1), (n2) WHERE ID(n1)=2 AND ID(n2)=0 CREATE (n1)-[r:ARE {name: \"test\", age: 23}]->(n2) RETURN r"))
queries.append((True, "MATCH ()-[r]-() WHERE ID(r)=0 RETURN r"))
queries.append((True, "MATCH ()-[r]-() WHERE ID(r)=1 RETURN r"))
queries.append((True, "MATCH ()-[r]-() WHERE ID(r)=2 RETURN r"))
queries.append((True, "MATCH ()-[r:IS]-() RETURN r"))
queries.append((True, "MATCH ()-[r:ARE]-() RETURN r"))
queries.append((True, "MATCH ()-[r]-() RETURN r"))
queries.append((True, "MATCH (n) WHERE ID(n)=1 SET n.name = \"updated_name\" RETURN n"))
queries.append((True, "MATCH (n) WHERE ID(n)=1 RETURN n"))
queries.append((True, "MATCH ()-[r]-() WHERE ID(r)=1 SET r.name = \"TEST100\" RETURN r"))
queries.append((True, "MATCH ()-[r]-() WHERE ID(r)=1 RETURN r"))
for i in range(1):
for active, query in queries:
if active:
for record in session.run(query):
print(record)

View File

@ -8,7 +8,7 @@
using Stream = communication::bolt::ResultStream<communication::bolt::Encoder<
communication::bolt::ChunkedEncoderBuffer<io::network::Socket>>>;
#else
#include "../stream/print_record_stream.hpp"
#include "../print_record_stream.hpp"
using Stream = PrintRecordStream;
#endif
#include "data_structures/bitset/static_bitset.hpp"

View File

@ -7,11 +7,11 @@ namespace fs = std::experimental::filesystem;
#include <gflags/gflags.h>
#include <glog/logging.h>
#include "database/graph_db_accessor.hpp"
#include "database/dbms.hpp"
#include "database/graph_db_accessor.hpp"
#include "print_record_stream.hpp"
#include "query/engine.hpp"
#include "query/frontend/stripped.hpp"
#include "stream/print_record_stream.hpp"
#include "utils/file.hpp"
#include "utils/string.hpp"

View File

@ -1,82 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
# TODO: auto import
# TODO: better logging (scenario visibility)
# TODO: result storage
from scenario import no_000001, no_000002
from neo4j.v1 import GraphDatabase, basic_auth, types, Node
# scenarios = [no_000001.scenario_1, no_000002.scenario_2]
scenarios = [no_000002.scenario_2]
# logging init
log = logging.getLogger(__name__)
# initialize driver and create session
session = GraphDatabase.driver("bolt://localhost",
auth=basic_auth("neo4j", "1234"),
encrypted=0).session()
def check(condition, scenario_no, message):
'''
Checks condition if condition is false the whole test will be stopped and
scenario_no + message will be printed out.
:param condition: bool
:param scenario_no: int
:param message: assert message
:returns: None
'''
if not condition:
log.error("Error in scenario: %s" % scenario_no)
assert condition, message
if __name__ == "__main__":
logging.basicConfig(level=logging.DEBUG)
for scenario in scenarios:
# iterate through all queries and execute them agains the database
for query, result in scenario.queries:
# extract count and properties from test entries
count, expected = result
records = [record for record in session.run(query)]
log.info("%s" % records)
# check count
check(len(records) == count, scenario.no,
"Number of results for %s isn't good;" \
" expected: %s, got %s" % (query, count, len(records)))
# in case that the result is single
if count == 1:
# extract properties from record
record = records[0]
record_name, = record
data = record[record_name]
if type(data) is Node:
received = {k: v for (k, v) in data.items()}
else:
received = data
# get expected elements
expected = expected[0]
# check properties
check(expected == received, scenario.no,
"Received data for %s isn't OK; expected: %s, " \
"got %s" % (query, expected, received))
elif count > 1:
# TODO: implement the full test
pass

View File

@ -1,35 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = "Marko Budiselic"
__date__ = "2016_11_02"
class Scenario1:
'''
Create Match Retrun Sequence
'''
def __init__(self):
'''
Constructor
'''
self.no = 1
self.desctiption = "Create Match Retrun Sequence"
self.init_graph = []
self.queries = [
("MATCH (n) DETACH DELETE n", (0, None)),
("MATCH (n) RETURN n", (0, [])),
("CREATE (n:Label) RETURN n", (1, [{}])),
("MATCH (n) RETURN n", (1, [{}])),
("CREATE (n:Label {prop: 0}) RETURN n", (1, [{"prop": 0}])),
("MATCH (n) RETURN n", (2, [{}, {"prop": 0}])),
("CREATE (n:Label {prop: 1}) RETURN n", (1, [{"prop": 1}])),
("MATCH (n) RETURN n", (3, [{}, {"prop": 0}, {"prop": 1}])),
("CREATE (n {prop: 1}) RETURN n", (1, [{"prop": 1}])),
("MATCH (n) RETURN n", (4, [{}, {"prop": 0}, {"prop": 1}, {"prop": 0}])),
("MATCH (n:Label) RETURN n", (3, [{}, {"prop": 0}, {"prop": 1}])),
("MATCH (n:Label {prop: 0}) RETURN n", (1, [{"prop": 0}])),
]
self.side_effects = None
scenario_1 = Scenario1()

View File

@ -1,28 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = "Marko Budiselic"
__date__ = "2016_11_03"
class Scenario2:
'''
Create node, edit labels and return all labels for the node.
'''
def __init__(self):
'''
Constructor
'''
self.no = 2
self.desctiption = "Create node, edit labels and return all labels for the node."
self.init_graph = []
self.queries = [
("MATCH (n) DETACH DELETE n", (0, None)),
("CREATE (n:Garment {garment_id: 1234, garment_category_id: 1}) RETURN n", (1, [{"garment_id": 1234, "garment_category_id": 1}])),
("MATCH (g:Garment {garment_id: 1234}) SET g:FF RETURN labels(g)", (1, [["Garment", "FF"]])),
("MATCH(g:Garment {garment_id: 1234}) SET g.reveals = 50 RETURN g", (1, [{"garment_id": 1234, "garment_category_id": 1, "reveals": 50}])),
("MATCH (n) RETURN n", (1, [{"garment_id": 1234, "garment_category_id": 1, "reveals": 50}])),
]
self.side_effects = None
scenario_2 = Scenario2()