def test_find_month(self):
     """4.5.5.1 Find related month for article."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
     res = run_query("MATCH(a:Article)-[:PUBLISHED_IN]->(r:Month) "
                     " RETURN r")
     self.assertThat(res.json()["data"][0][0]["data"]["name"],
                     Equals("November"))
 def test_find_month(self):
     """4.5.5.1 Find related month for article."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
     res = run_query("MATCH(a:Article)-[:PUBLISHED_IN]->(r:Month) "
                     " RETURN r")
     self.assertThat(res.json()["data"][0][0]["data"]["name"],
                     Equals("November"))
 def test_find_country(self):
     """4.5.5.1 Find related country for article."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
     res = run_query("MATCH(a:Article)-[:ORIGINATED_IN]->(r:Country) "
                     " RETURN r")
     self.assertThat(res.json()["data"][0][0]["data"]["name"],
                     Equals("Australia"))
 def test_find_country(self):
     """4.5.5.1 Find related country for article."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
     res = run_query("MATCH(a:Article)-[:ORIGINATED_IN]->(r:Country) "
                     " RETURN r")
     self.assertThat(res.json()["data"][0][0]["data"]["name"],
                     Equals("Australia"))
    def test_throw_exception_if_network_connection_fails(self):
        """4.5.5.2 Throw exception if network connection is down."""
        with mock.patch("socket.socket") as MockSocket:
            def raise_socket_error(*args):
                """Raise socket error."""
                del args
                raise socket.error()

            MockSocket.return_value.connect = raise_socket_error
            with ExpectedException(requests.exceptions.ConnectionError):
                run_commands(load.commands_from_data([ENTRY_VALUES]))
    def test_throw_exception_if_network_connection_fails(self):
        """4.5.5.2 Throw exception if network connection is down."""
        with mock.patch("socket.socket") as MockSocket:

            def raise_socket_error(*args):
                """Raise socket error."""
                del args
                raise socket.error()

            MockSocket.return_value.connect = raise_socket_error
            with ExpectedException(requests.exceptions.ConnectionError):
                run_commands(load.commands_from_data([ENTRY_VALUES]))
    def test_find_all_in_country(self):
        """4.5.5.1 Find all articles that match a country."""
        values = [ENTRY_VALUES.copy(),
                  ENTRY_VALUES.copy(),
                  ENTRY_VALUES.copy()]
        # Make the last entry something else so that we can assert that two
        # matched
        values[1]["pmid"] = "111112"
        values[2]["pmid"] = "111113"
        values[2]["country"] = "China"

        run_commands(load.commands_from_data(values))
        res = run_query("MATCH(a:Article)-[:ORIGINATED_IN]->(r:Country) "
                        " WHERE r.name =\"Australia\" RETURN Count(a)")
        self.assertThat(res.json()["data"][0][0],
                        Equals(2))
    def test_find_all_in_country(self):
        """4.5.5.1 Find all articles that match a country."""
        values = [
            ENTRY_VALUES.copy(),
            ENTRY_VALUES.copy(),
            ENTRY_VALUES.copy()
        ]
        # Make the last entry something else so that we can assert that two
        # matched
        values[1]["pmid"] = "111112"
        values[2]["pmid"] = "111113"
        values[2]["country"] = "China"

        run_commands(load.commands_from_data(values))
        res = run_query("MATCH(a:Article)-[:ORIGINATED_IN]->(r:Country) "
                        " WHERE r.name =\"Australia\" RETURN Count(a)")
        self.assertThat(res.json()["data"][0][0], Equals(2))
 def test_find_author(self):
     """4.5.5.1 Find related author for article."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
     res = run_query("MATCH(a:Article)-[:AUTHORED_BY]->(r:Author) RETURN r")
     self.assertThat(res.json()["data"][0][0]["data"]["name"],
                     Equals("fore_name last_name"))
 def test_run_query_against_article(self, query, value):
     """4.5.5.1 Can run query to obtain entered data."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
     res = run_query(query).json()
     self.assertThat(res["data"][0][0]["data"], Equals(value))
 def test_create_article(self):
     """4.5.5.0 Can create article."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
 def test_find_author(self):
     """4.5.5.1 Find related author for article."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
     res = run_query("MATCH(a:Article)-[:AUTHORED_BY]->(r:Author) RETURN r")
     self.assertThat(res.json()["data"][0][0]["data"]["name"],
                     Equals("fore_name last_name"))
 def test_run_query_against_article(self, query, value):
     """4.5.5.1 Can run query to obtain entered data."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))
     res = run_query(query).json()
     self.assertThat(res["data"][0][0]["data"],
                     Equals(value))
 def test_create_article(self):
     """4.5.5.0 Can create article."""
     run_commands(load.commands_from_data([ENTRY_VALUES]))