From fd06525712f1e61de1c716a77c209165d39448bd Mon Sep 17 00:00:00 2001
From: Dariusz Kedzierski <dkedzierski@syncad.com>
Date: Tue, 22 Sep 2020 19:28:40 +0200
Subject: [PATCH] Test for pre24 list_votes

---
 .../by_comment_voter_author.orig.json         |  26 ++++
 .../by_comment_voter_author.pat.json          |   5 +
 .../by_comment_voter_author.tavern.yaml       |  35 ++++++
 .../by_comment_voter_permlink.orig.json       |  26 ++++
 .../by_comment_voter_permlink.pat.json        |   5 +
 .../by_comment_voter_permlink.tavern.yaml     |  35 ++++++
 .../by_comment_voter_wrong_post.orig.json     |  26 ++++
 .../by_comment_voter_wrong_post.pat.json      |   5 +
 .../by_comment_voter_wrong_post.tavern.yaml   |  35 ++++++
 .../by_voter_comment_author.orig.json         |  26 ++++
 .../by_voter_comment_author.pat.json          |   5 +
 .../by_voter_comment_author.tavern.yaml       |  35 ++++++
 .../by_voter_comment_permlink.orig.json       |  26 ++++
 .../by_voter_comment_permlink.pat.json        |   5 +
 .../by_voter_comment_permlink.tavern.yaml     |  35 ++++++
 .../by_voter_comment_wrong_post.orig.json     |  26 ++++
 .../by_voter_comment_wrong_post.pat.json      |   5 +
 .../by_voter_comment_wrong_post.tavern.yaml   |  35 ++++++
 .../list_votes_pre24/unknown_sort.orig.json   |  26 ++++
 .../list_votes_pre24/unknown_sort.pat.json    |   5 +
 .../list_votes_pre24/unknown_sort.tavern.yaml |  35 ++++++
 .../by_comment_voter_all_good_data.orig.json  | 114 ++++++++++++++++++
 .../by_comment_voter_all_good_data.pat.json   | 114 ++++++++++++++++++
 ...by_comment_voter_all_good_data.tavern.yaml |  33 +++++
 .../by_comment_voter_first.orig.json          | 114 ++++++++++++++++++
 .../by_comment_voter_first.pat.json           | 114 ++++++++++++++++++
 .../by_comment_voter_first.tavern.yaml        |  33 +++++
 .../by_comment_voter_no_data.orig.json        | 114 ++++++++++++++++++
 .../by_comment_voter_no_data.pat.json         | 114 ++++++++++++++++++
 .../by_comment_voter_no_data.tavern.yaml      |  34 ++++++
 ...by_comment_voter_one_before_last.orig.json | 114 ++++++++++++++++++
 .../by_comment_voter_one_before_last.pat.json | 114 ++++++++++++++++++
 ..._comment_voter_one_before_last.tavern.yaml |  33 +++++
 .../by_comment_voter_only_voter.orig.json     | 114 ++++++++++++++++++
 .../by_comment_voter_only_voter.pat.json      | 114 ++++++++++++++++++
 .../by_comment_voter_only_voter.tavern.yaml   |  35 ++++++
 ...by_voter_comment_author_permlink.orig.json | 114 ++++++++++++++++++
 .../by_voter_comment_author_permlink.pat.json | 114 ++++++++++++++++++
 ..._voter_comment_author_permlink.tavern.yaml |  33 +++++
 .../by_voter_comment_first.orig.json          | 114 ++++++++++++++++++
 .../by_voter_comment_first.pat.json           | 114 ++++++++++++++++++
 .../by_voter_comment_first.tavern.yaml        |  33 +++++
 .../by_voter_comment_no_data.orig.json        | 114 ++++++++++++++++++
 .../by_voter_comment_no_data.pat.json         | 114 ++++++++++++++++++
 .../by_voter_comment_no_data.tavern.yaml      |  33 +++++
 .../by_voter_comment_voter.orig.json          | 114 ++++++++++++++++++
 .../by_voter_comment_voter.pat.json           | 114 ++++++++++++++++++
 .../by_voter_comment_voter.tavern.yaml        |  33 +++++
 48 files changed, 2814 insertions(+)
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.orig.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.pat.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.orig.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.pat.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.orig.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.pat.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.orig.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.pat.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.orig.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.pat.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.orig.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.pat.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.orig.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.pat.json
 create mode 100644 hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.tavern.yaml
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.orig.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.pat.json
 create mode 100644 hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.tavern.yaml

diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.orig.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.orig.json
new file mode 100644
index 00000000..2dd665e7
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.orig.json
@@ -0,0 +1,26 @@
+{
+  "code": -32003,
+  "data": {
+    "code": 10,
+    "message": "Assert Exception",
+    "name": "assert_exception",
+    "stack": [
+      {
+        "context": {
+          "file": "database_api.cpp",
+          "hostname": "",
+          "level": "error",
+          "line": 1215,
+          "method": "votes_impl",
+          "timestamp": "2020-09-10T17:35:29"
+        },
+        "data": {
+          "a": "roelandp",
+          "p": ""
+        },
+        "format": "comment != nullptr: Could not find comment ${a}/${p}."
+      }
+    ]
+  },
+  "message": "Assert Exception:comment != nullptr: Could not find comment roelandp/."
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.pat.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.pat.json
new file mode 100644
index 00000000..683b9774
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.pat.json
@@ -0,0 +1,5 @@
+{
+  "code": -32602,
+  "data": "Post roelandp/ does not exist",
+  "message": "Invalid parameters"
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.tavern.yaml b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.tavern.yaml
new file mode 100644
index 00000000..a95c59b0
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_author.tavern.yaml
@@ -0,0 +1,35 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_comment_voter" comment not found
+
+marks:
+  - patterntest
+  - negative
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_comment_voter" comment not found
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["roelandp", "", ""],
+            "limit": 10,
+            "order": "by_comment_voter",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_comment_voter_author"
+          directory: "database_api_negative/list_votes_pre24"
+          error_response: true
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.orig.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.orig.json
new file mode 100644
index 00000000..544103ea
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.orig.json
@@ -0,0 +1,26 @@
+{
+  "code": -32003,
+  "data": {
+    "code": 10,
+    "message": "Assert Exception",
+    "name": "assert_exception",
+    "stack": [
+      {
+        "context": {
+          "file": "database_api.cpp",
+          "hostname": "",
+          "level": "error",
+          "line": 1215,
+          "method": "votes_impl",
+          "timestamp": "2020-09-10T17:35:29"
+        },
+        "data": {
+          "a": "",
+          "p": "re-roelandp-tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours-20160825t212252221z"
+        },
+        "format": "comment != nullptr: Could not find comment ${a}/${p}."
+      }
+    ]
+  },
+  "message": "Assert Exception:comment != nullptr: Could not find comment /re-roelandp-tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours-20160825t212252221z."
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.pat.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.pat.json
new file mode 100644
index 00000000..fcca641a
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.pat.json
@@ -0,0 +1,5 @@
+{
+  "code": -32602,
+  "data": "Post /re-roelandp-tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours-20160825t212252221z does not exist",
+  "message": "Invalid parameters"
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.tavern.yaml b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.tavern.yaml
new file mode 100644
index 00000000..b2fbe54a
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_permlink.tavern.yaml
@@ -0,0 +1,35 @@
+---
+test_name: Hivemind database_api.list_votes patterns test "by_comment_voter" permlink not found
+
+marks:
+  - patterntest
+  - negative
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test "by_comment_voter" permlink not found
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "re-roelandp-tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours-20160825t212252221z", ""],
+            "limit": 10,
+            "order": "by_comment_voter",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_comment_voter_permlink"
+          directory: "database_api_negative/list_votes_pre24"
+          error_response: true
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.orig.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.orig.json
new file mode 100644
index 00000000..3a723301
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.orig.json
@@ -0,0 +1,26 @@
+{
+  "code": -32003,
+  "data": {
+    "code": 10,
+    "message": "Assert Exception",
+    "name": "assert_exception",
+    "stack": [
+      {
+        "context": {
+          "file": "database_api.cpp",
+          "hostname": "",
+          "level": "error",
+          "line": 1215,
+          "method": "votes_impl",
+          "timestamp": "2020-09-10T17:35:29"
+        },
+        "data": {
+          "a": "steemit",
+          "p": "re-roelandp-tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours-20160825t212252221z"
+        },
+        "format": "comment != nullptr: Could not find comment ${a}/${p}."
+      }
+    ]
+  },
+  "message": "Assert Exception:comment != nullptr: Could not find comment steemit/re-roelandp-tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours-20160825t212252221z."
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.pat.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.pat.json
new file mode 100644
index 00000000..fbc2af0f
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.pat.json
@@ -0,0 +1,5 @@
+{
+  "code": -32602,
+  "data": "Post steemit/re-roelandp-tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours-20160825t212252221z does not exist",
+  "message": "Invalid parameters"
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.tavern.yaml b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.tavern.yaml
new file mode 100644
index 00000000..f0edce1f
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_comment_voter_wrong_post.tavern.yaml
@@ -0,0 +1,35 @@
+---
+test_name: Hivemind database_api.list_votes patterns test "by_comment_voter" comment not found
+
+marks:
+  - patterntest
+  - negative
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test "by_comment_voter" comment not found
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["steemit", "re-roelandp-tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours-20160825t212252221z", ""],
+            "limit": 10,
+            "order": "by_comment_voter",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_comment_voter_wrong_post"
+          directory: "database_api_negative/list_votes_pre24"
+          error_response: true
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.orig.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.orig.json
new file mode 100644
index 00000000..2dd665e7
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.orig.json
@@ -0,0 +1,26 @@
+{
+  "code": -32003,
+  "data": {
+    "code": 10,
+    "message": "Assert Exception",
+    "name": "assert_exception",
+    "stack": [
+      {
+        "context": {
+          "file": "database_api.cpp",
+          "hostname": "",
+          "level": "error",
+          "line": 1215,
+          "method": "votes_impl",
+          "timestamp": "2020-09-10T17:35:29"
+        },
+        "data": {
+          "a": "roelandp",
+          "p": ""
+        },
+        "format": "comment != nullptr: Could not find comment ${a}/${p}."
+      }
+    ]
+  },
+  "message": "Assert Exception:comment != nullptr: Could not find comment roelandp/."
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.pat.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.pat.json
new file mode 100644
index 00000000..683b9774
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.pat.json
@@ -0,0 +1,5 @@
+{
+  "code": -32602,
+  "data": "Post roelandp/ does not exist",
+  "message": "Invalid parameters"
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.tavern.yaml b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.tavern.yaml
new file mode 100644
index 00000000..0a415e9a
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_author.tavern.yaml
@@ -0,0 +1,35 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_voter_comment" comment not found
+
+marks:
+  - patterntest
+  - negative
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_voter_comment" comment not found
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "roelandp", ""],
+            "limit": 10,
+            "order": "by_voter_comment",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_voter_comment_author"
+          directory: "database_api_negative/list_votes_pre24"
+          error_response: true
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.orig.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.orig.json
new file mode 100644
index 00000000..d49d9462
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.orig.json
@@ -0,0 +1,26 @@
+{
+  "code": -32003,
+  "data": {
+    "code": 10,
+    "message": "Assert Exception",
+    "name": "assert_exception",
+    "stack": [
+      {
+        "context": {
+          "file": "database_api.cpp",
+          "hostname": "",
+          "level": "error",
+          "line": 1215,
+          "method": "votes_impl",
+          "timestamp": "2020-09-10T17:35:29"
+        },
+        "data": {
+          "a": "",
+          "p": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours"
+        },
+        "format": "comment != nullptr: Could not find comment ${a}/${p}."
+      }
+    ]
+  },
+  "message": "Assert Exception:comment != nullptr: Could not find comment /tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours."
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.pat.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.pat.json
new file mode 100644
index 00000000..26ec2b03
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.pat.json
@@ -0,0 +1,5 @@
+{
+  "code": -32602,
+  "data": "Post /tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours does not exist",
+  "message": "Invalid parameters"
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.tavern.yaml b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.tavern.yaml
new file mode 100644
index 00000000..4e5f5ebd
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_permlink.tavern.yaml
@@ -0,0 +1,35 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_voter_Comment" comment not found
+
+marks:
+  - patterntest
+  - negative
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_voter_comment" comment not found
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "", "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours"],
+            "limit": 10,
+            "order": "by_voter_comment",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_voter_comment_permlink"
+          directory: "database_api_negative/list_votes_pre24"
+          error_response: true
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.orig.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.orig.json
new file mode 100644
index 00000000..ed21f994
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.orig.json
@@ -0,0 +1,26 @@
+{
+  "code": -32003,
+  "data": {
+    "code": 10,
+    "message": "Assert Exception",
+    "name": "assert_exception",
+    "stack": [
+      {
+        "context": {
+          "file": "database_api.cpp",
+          "hostname": "",
+          "level": "error",
+          "line": 1215,
+          "method": "votes_impl",
+          "timestamp": "2020-09-10T17:35:29"
+        },
+        "data": {
+          "a": "roelandp",
+          "p": "tldr-an-exploration-in-st"
+        },
+        "format": "comment != nullptr: Could not find comment ${a}/${p}."
+      }
+    ]
+  },
+  "message": "Assert Exception:comment != nullptr: Could not find comment roelandp/tldr-an-exploration-in-st."
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.pat.json b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.pat.json
new file mode 100644
index 00000000..9a42b712
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.pat.json
@@ -0,0 +1,5 @@
+{
+  "code": -32602,
+  "data": "Post roelandp/tldr-an-exploration-in-st does not exist",
+  "message": "Invalid parameters"
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.tavern.yaml b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.tavern.yaml
new file mode 100644
index 00000000..41896ecc
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/by_voter_comment_wrong_post.tavern.yaml
@@ -0,0 +1,35 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_voter_comment" comment not found
+
+marks:
+  - patterntest
+  - negative
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_voter_comment" comment not found
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "roelandp", "tldr-an-exploration-in-st"],
+            "limit": 10,
+            "order": "by_voter_comment",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_voter_comment_wrong_post"
+          directory: "database_api_negative/list_votes_pre24"
+          error_response: true
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.orig.json b/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.orig.json
new file mode 100644
index 00000000..6c6ac141
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.orig.json
@@ -0,0 +1,26 @@
+{
+  "code": -32000,
+  "data": {
+    "code": 7,
+    "message": "Bad Cast",
+    "name": "bad_cast_exception",
+    "stack": [
+      {
+        "context": {
+          "file": "exception.cpp",
+          "hostname": "",
+          "level": "error",
+          "line": 226,
+          "method": "throw_bad_enum_cast",
+          "timestamp": "2020-09-10T17:35:29"
+        },
+        "data": {
+          "enum": "steem::plugins::database_api::sort_order_type",
+          "key": "by_author"
+        },
+        "format": "invalid name '${key}' in enum '${enum}'"
+      }
+    ]
+  },
+  "message": "Bad Cast:invalid name 'by_author' in enum 'steem::plugins::database_api::sort_order_type'"
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.pat.json b/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.pat.json
new file mode 100644
index 00000000..752354d3
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.pat.json
@@ -0,0 +1,5 @@
+{
+  "code": -32602,
+  "data": "Order by_author is not supported",
+  "message": "Invalid parameters"
+}
diff --git a/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.tavern.yaml b/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.tavern.yaml
new file mode 100644
index 00000000..bda25050
--- /dev/null
+++ b/hivemind/tavern/database_api_negative/list_votes_pre24/unknown_sort.tavern.yaml
@@ -0,0 +1,35 @@
+---
+test_name: Hivemind database_api.list_votes patterns test invalid sort order by author
+
+marks:
+  - patterntest
+  - negative
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test invalid name by author
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "roelandp", "tldr-an-exploration-in-st"],
+            "limit": 10,
+            "order": "by_author",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "unknown_sort"
+          directory: "database_api_negative/list_votes_pre24"
+          error_response: true
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.orig.json
new file mode 100644
index 00000000..e30adbe6
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "roelandp",
+      "id": 3343005,
+      "last_update": "2016-08-25T21:51:03",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "8656137777",
+      "vote_percent": 10000,
+      "voter": "winstonwolfe",
+      "weight": "861294373426438"
+    },
+    {
+      "author": "roelandp",
+      "id": 3342451,
+      "last_update": "2016-08-25T21:38:18",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 737544850,
+      "vote_percent": 10000,
+      "voter": "happyphoenix",
+      "weight": "62433843229167"
+    },
+    {
+      "author": "roelandp",
+      "id": 3342235,
+      "last_update": "2016-08-25T21:33:48",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 672065480,
+      "vote_percent": 10000,
+      "voter": "curator",
+      "weight": "181113788939196"
+    },
+    {
+      "author": "roelandp",
+      "id": 3341523,
+      "last_update": "2016-08-25T21:19:48",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 1666197673,
+      "vote_percent": 10000,
+      "voter": "dirty.hera",
+      "weight": "308139772097377"
+    },
+    {
+      "author": "roelandp",
+      "id": 3341256,
+      "last_update": "2016-08-25T21:14:30",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "45913763443",
+      "vote_percent": 10000,
+      "voter": "gomeravibz",
+      "weight": "1695116440663136"
+    },
+    {
+      "author": "roelandp",
+      "id": 3342963,
+      "last_update": "2016-08-25T21:49:51",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "5388352911",
+      "vote_percent": 10000,
+      "voter": "nekromarinist",
+      "weight": "538001334195297"
+    },
+    {
+      "author": "roelandp",
+      "id": 3343754,
+      "last_update": "2016-08-25T22:11:33",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "29066230989",
+      "vote_percent": 10000,
+      "voter": "allasyummyfood",
+      "weight": "2802215769731967"
+    },
+    {
+      "author": "roelandp",
+      "id": 3351018,
+      "last_update": "2016-08-26T00:54:48",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "11626372889",
+      "vote_percent": 10000,
+      "voter": "felixxx",
+      "weight": "650047031947827"
+    },
+    {
+      "author": "roelandp",
+      "id": 3344113,
+      "last_update": "2016-08-25T22:17:00",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "19752627093",
+      "vote_percent": 10000,
+      "voter": "yng-entrepreneur",
+      "weight": "1853467546566796"
+    },
+    {
+      "author": "roelandp",
+      "id": 3341826,
+      "last_update": "2016-08-25T21:27:21",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "21674528091",
+      "vote_percent": 10000,
+      "voter": "laoyao",
+      "weight": "4286839674777575"
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.pat.json
new file mode 100644
index 00000000..36682a71
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "roelandp",
+      "id": 3356807,
+      "last_update": "2016-08-25T21:51:03",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 8656137777,
+      "vote_percent": 10000,
+      "voter": "winstonwolfe",
+      "weight": 861294373426438
+    },
+    {
+      "author": "roelandp",
+      "id": 3356253,
+      "last_update": "2016-08-25T21:38:18",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 737544850,
+      "vote_percent": 10000,
+      "voter": "happyphoenix",
+      "weight": 62433843229167
+    },
+    {
+      "author": "roelandp",
+      "id": 3356037,
+      "last_update": "2016-08-25T21:33:48",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 672065480,
+      "vote_percent": 10000,
+      "voter": "curator",
+      "weight": 181113788939196
+    },
+    {
+      "author": "roelandp",
+      "id": 3355325,
+      "last_update": "2016-08-25T21:19:48",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 1666197673,
+      "vote_percent": 10000,
+      "voter": "dirty.hera",
+      "weight": 308139772097377
+    },
+    {
+      "author": "roelandp",
+      "id": 3355057,
+      "last_update": "2016-08-25T21:14:30",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 45913763443,
+      "vote_percent": 10000,
+      "voter": "gomeravibz",
+      "weight": 1695116440663136
+    },
+    {
+      "author": "roelandp",
+      "id": 3356765,
+      "last_update": "2016-08-25T21:49:51",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 5388352911,
+      "vote_percent": 10000,
+      "voter": "nekromarinist",
+      "weight": 538001334195297
+    },
+    {
+      "author": "roelandp",
+      "id": 3357557,
+      "last_update": "2016-08-25T22:11:33",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 29066230989,
+      "vote_percent": 10000,
+      "voter": "allasyummyfood",
+      "weight": 2802215769731967
+    },
+    {
+      "author": "roelandp",
+      "id": 3364851,
+      "last_update": "2016-08-26T00:54:48",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 11626372889,
+      "vote_percent": 10000,
+      "voter": "felixxx",
+      "weight": 650047031947827
+    },
+    {
+      "author": "roelandp",
+      "id": 3357916,
+      "last_update": "2016-08-25T22:17:00",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 19752627093,
+      "vote_percent": 10000,
+      "voter": "yng-entrepreneur",
+      "weight": 1853467546566796
+    },
+    {
+      "author": "roelandp",
+      "id": 3355628,
+      "last_update": "2016-08-25T21:27:21",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 21674528091,
+      "vote_percent": 10000,
+      "voter": "laoyao",
+      "weight": 4286839674777575
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.tavern.yaml
new file mode 100644
index 00000000..726e423a
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_all_good_data.tavern.yaml
@@ -0,0 +1,33 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_comment_voter" all good data
+
+marks:
+  - patterntest
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_comment_voter" all good data
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["roelandp", "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours", "winstonwolfe"],
+            "limit": 10,
+            "order": "by_comment_voter",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_comment_voter_all_good_data"
+          directory: "database_api_patterns/list_votes_pre24"
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.orig.json
new file mode 100644
index 00000000..f08830f7
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "roelandp",
+      "id": 3341240,
+      "last_update": "2016-08-25T21:14:06",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "1443077144144",
+      "vote_percent": 10000,
+      "voter": "anonymous",
+      "weight": "14340640191507060"
+    },
+    {
+      "author": "roelandp",
+      "id": 3341540,
+      "last_update": "2016-08-25T21:20:09",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "158985837190",
+      "vote_percent": 10000,
+      "voter": "highasfuck",
+      "weight": "18707262932859690"
+    },
+    {
+      "author": "roelandp",
+      "id": 3346057,
+      "last_update": "2016-08-25T22:53:06",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "7872457033211",
+      "vote_percent": 10000,
+      "voter": "pharesim",
+      "weight": "575498905301694100"
+    },
+    {
+      "author": "roelandp",
+      "id": 3341406,
+      "last_update": "2016-08-25T21:17:21",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "1754932215280",
+      "vote_percent": 10000,
+      "voter": "hr1",
+      "weight": "240710957476907253"
+    },
+    {
+      "author": "roelandp",
+      "id": 3342421,
+      "last_update": "2016-08-25T21:37:36",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "9910147284570",
+      "vote_percent": 5000,
+      "voter": "tombstone",
+      "weight": "1299387373405102838"
+    },
+    {
+      "author": "roelandp",
+      "id": 3342412,
+      "last_update": "2016-08-25T21:37:18",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "2921333226039",
+      "vote_percent": 10000,
+      "voter": "wang",
+      "weight": "731336847763362836"
+    },
+    {
+      "author": "roelandp",
+      "id": 3346108,
+      "last_update": "2016-08-25T22:54:00",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 2476131997,
+      "vote_percent": 10000,
+      "voter": "boy",
+      "weight": "140990083519884"
+    },
+    {
+      "author": "roelandp",
+      "id": 3346098,
+      "last_update": "2016-08-25T22:53:51",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 3005703855,
+      "vote_percent": 10000,
+      "voter": "bue-witness",
+      "weight": "171594258591508"
+    },
+    {
+      "author": "roelandp",
+      "id": 3346112,
+      "last_update": "2016-08-25T22:54:03",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 557354442,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": "31731545284403"
+    },
+    {
+      "author": "roelandp",
+      "id": 3379387,
+      "last_update": "2016-08-26T15:42:12",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": "2152215026140",
+      "vote_percent": 2900,
+      "voter": "complexring",
+      "weight": "109163904259652527"
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.pat.json
new file mode 100644
index 00000000..030cc6e0
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "roelandp",
+      "id": 3355042,
+      "last_update": "2016-08-25T21:14:06",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 1443077144144,
+      "vote_percent": 10000,
+      "voter": "anonymous",
+      "weight": 14340640191507060
+    },
+    {
+      "author": "roelandp",
+      "id": 3355342,
+      "last_update": "2016-08-25T21:20:09",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 158985837190,
+      "vote_percent": 10000,
+      "voter": "highasfuck",
+      "weight": 18707262932859690
+    },
+    {
+      "author": "roelandp",
+      "id": 3359865,
+      "last_update": "2016-08-25T22:53:06",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 7872457033211,
+      "vote_percent": 10000,
+      "voter": "pharesim",
+      "weight": 575498905301694100
+    },
+    {
+      "author": "roelandp",
+      "id": 3355208,
+      "last_update": "2016-08-25T21:17:21",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 1754932215280,
+      "vote_percent": 10000,
+      "voter": "hr1",
+      "weight": 240710957476907253
+    },
+    {
+      "author": "roelandp",
+      "id": 3356223,
+      "last_update": "2016-08-25T21:37:36",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 9910147284570,
+      "vote_percent": 5000,
+      "voter": "tombstone",
+      "weight": 1299387373405102838
+    },
+    {
+      "author": "roelandp",
+      "id": 3356214,
+      "last_update": "2016-08-25T21:37:18",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 2921333226039,
+      "vote_percent": 10000,
+      "voter": "wang",
+      "weight": 731336847763362836
+    },
+    {
+      "author": "roelandp",
+      "id": 3359916,
+      "last_update": "2016-08-25T22:54:00",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 2476131997,
+      "vote_percent": 10000,
+      "voter": "boy",
+      "weight": 140990083519884
+    },
+    {
+      "author": "roelandp",
+      "id": 3359906,
+      "last_update": "2016-08-25T22:53:51",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 3005703855,
+      "vote_percent": 10000,
+      "voter": "bue-witness",
+      "weight": 171594258591508
+    },
+    {
+      "author": "roelandp",
+      "id": 3359920,
+      "last_update": "2016-08-25T22:54:03",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 557354442,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 31731545284403
+    },
+    {
+      "author": "roelandp",
+      "id": 3393353,
+      "last_update": "2016-08-26T15:42:12",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 2152215026140,
+      "vote_percent": 2900,
+      "voter": "complexring",
+      "weight": 109163904259652527
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.tavern.yaml
new file mode 100644
index 00000000..2fad489e
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_first.tavern.yaml
@@ -0,0 +1,33 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_comment_voter"
+
+marks:
+  - patterntest
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: list_votes_by_comment_voter
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start":["roelandp", "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours", "nxt2"],
+            "limit": 10,
+            "order": "by_comment_voter",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_comment_voter_first"
+          directory: "database_api_patterns/list_votes_pre24"
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.orig.json
new file mode 100644
index 00000000..5bb4ff4b
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "steemit",
+      "id": 9,
+      "last_update": "2016-04-07T19:15:36",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 375241,
+      "vote_percent": 100,
+      "voter": "dantheman",
+      "weight": "32866333630"
+    },
+    {
+      "author": "steemit",
+      "id": 4,
+      "last_update": "2016-04-06T19:29:03",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 886132,
+      "vote_percent": 10000,
+      "voter": "mr11acdee",
+      "weight": "876019385955"
+    },
+    {
+      "author": "steemit",
+      "id": 0,
+      "last_update": "2016-03-30T20:13:00",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 5100,
+      "vote_percent": 10000,
+      "voter": "steemit78",
+      "weight": "5100000000"
+    },
+    {
+      "author": "steemit",
+      "id": 88,
+      "last_update": "2016-04-09T17:34:36",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 1259167,
+      "vote_percent": 10000,
+      "voter": "anonymous",
+      "weight": "312616340416"
+    },
+    {
+      "author": "steemit",
+      "id": 257,
+      "last_update": "2016-04-15T10:12:36",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 318519,
+      "vote_percent": 10000,
+      "voter": "hello",
+      "weight": 3369765102
+    },
+    {
+      "author": "steemit",
+      "id": 255,
+      "last_update": "2016-04-15T10:12:30",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 153384,
+      "vote_percent": 10000,
+      "voter": "world",
+      "weight": 472619298
+    },
+    {
+      "author": "steemit",
+      "id": 316,
+      "last_update": "2016-04-16T17:12:54",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": -936400,
+      "vote_percent": -100,
+      "voter": "ned",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 258,
+      "last_update": "2016-04-15T10:12:39",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 59412,
+      "vote_percent": 10000,
+      "voter": "fufubar1",
+      "weight": 21052793
+    },
+    {
+      "author": "steemit",
+      "id": 256,
+      "last_update": "2016-04-15T10:12:33",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 14997,
+      "vote_percent": 10000,
+      "voter": "anonymous1",
+      "weight": 437001
+    },
+    {
+      "author": "steemit",
+      "id": 6,
+      "last_update": "2016-04-07T14:55:15",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 1441,
+      "vote_percent": 100,
+      "voter": "red",
+      "weight": 3754
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.pat.json
new file mode 100644
index 00000000..e50b58a4
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "steemit",
+      "id": 10,
+      "last_update": "2016-04-07T19:15:36",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 375241,
+      "vote_percent": 100,
+      "voter": "dantheman",
+      "weight": 32866333630
+    },
+    {
+      "author": "steemit",
+      "id": 5,
+      "last_update": "2016-04-06T19:29:03",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 886132,
+      "vote_percent": 10000,
+      "voter": "mr11acdee",
+      "weight": 876019385955
+    },
+    {
+      "author": "steemit",
+      "id": 1,
+      "last_update": "2016-03-30T20:13:00",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 5100,
+      "vote_percent": 10000,
+      "voter": "steemit78",
+      "weight": 5100000000
+    },
+    {
+      "author": "steemit",
+      "id": 89,
+      "last_update": "2016-04-09T17:34:36",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 1259167,
+      "vote_percent": 10000,
+      "voter": "anonymous",
+      "weight": 312616340416
+    },
+    {
+      "author": "steemit",
+      "id": 258,
+      "last_update": "2016-04-15T10:12:36",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 318519,
+      "vote_percent": 10000,
+      "voter": "hello",
+      "weight": 3369765102
+    },
+    {
+      "author": "steemit",
+      "id": 256,
+      "last_update": "2016-04-15T10:12:30",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 153384,
+      "vote_percent": 10000,
+      "voter": "world",
+      "weight": 472619298
+    },
+    {
+      "author": "steemit",
+      "id": 317,
+      "last_update": "2016-04-16T17:12:54",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": -936400,
+      "vote_percent": -100,
+      "voter": "ned",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 259,
+      "last_update": "2016-04-15T10:12:39",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 59412,
+      "vote_percent": 10000,
+      "voter": "fufubar1",
+      "weight": 21052793
+    },
+    {
+      "author": "steemit",
+      "id": 257,
+      "last_update": "2016-04-15T10:12:33",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 14997,
+      "vote_percent": 10000,
+      "voter": "anonymous1",
+      "weight": 437001
+    },
+    {
+      "author": "steemit",
+      "id": 7,
+      "last_update": "2016-04-07T14:55:15",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 1441,
+      "vote_percent": 100,
+      "voter": "red",
+      "weight": 3754
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.tavern.yaml
new file mode 100644
index 00000000..13a357ee
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_no_data.tavern.yaml
@@ -0,0 +1,34 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_comment_voter" no data
+
+marks:
+  - patterntest
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_comment_voter" no data
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "", ""],
+            "limit": 10,
+            "order": "by_comment_voter",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_comment_voter_no_data"
+          directory: "database_api_patterns/list_votes_pre24"
+
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.orig.json
new file mode 100644
index 00000000..d3ec2b7f
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "roelandp",
+      "id": 3341364,
+      "last_update": "2016-08-25T21:16:24",
+      "num_changes": -1,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 67807559,
+      "vote_percent": 10000,
+      "voter": "pickoum",
+      "weight": "11168221241042"
+    },
+    {
+      "author": "anxietymaven",
+      "id": 3397159,
+      "last_update": "2016-08-26T22:06:21",
+      "num_changes": 0,
+      "permlink": "re-adm-re-anxietymaven-ask-yourself-one-question-fuck-steemit-or-nah-20160825t211407406z",
+      "rshares": -742966944841,
+      "vote_percent": -10000,
+      "voter": "pfunk",
+      "weight": 0
+    },
+    {
+      "author": "jamielefay",
+      "id": 3344706,
+      "last_update": "2016-08-25T22:28:54",
+      "num_changes": -1,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 2476122539,
+      "vote_percent": 10000,
+      "voter": "boy",
+      "weight": "6006017962432724"
+    },
+    {
+      "author": "jamielefay",
+      "id": 3344694,
+      "last_update": "2016-08-25T22:28:45",
+      "num_changes": -1,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 3005691694,
+      "vote_percent": 10000,
+      "voter": "bue-witness",
+      "weight": "7417167962646132"
+    },
+    {
+      "author": "jamielefay",
+      "id": 3344711,
+      "last_update": "2016-08-25T22:28:57",
+      "num_changes": -1,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 557353091,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": "1350783817158092"
+    },
+    {
+      "author": "jamielefay",
+      "id": 3344696,
+      "last_update": "2016-08-25T22:28:48",
+      "num_changes": -1,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": "42722553918",
+      "vote_percent": 10000,
+      "voter": "bue",
+      "weight": "104552198157919482"
+    },
+    {
+      "author": "jamielefay",
+      "id": 3344699,
+      "last_update": "2016-08-25T22:28:48",
+      "num_changes": -1,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 1327119432,
+      "vote_percent": 10000,
+      "voter": "mini",
+      "weight": "3221828527667312"
+    },
+    {
+      "author": "jamielefay",
+      "id": 3344712,
+      "last_update": "2016-08-25T22:29:00",
+      "num_changes": -1,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 170849766,
+      "vote_percent": 10000,
+      "voter": "moon",
+      "weight": "414011598841308"
+    },
+    {
+      "author": "jamielefay",
+      "id": 3344702,
+      "last_update": "2016-08-25T22:28:51",
+      "num_changes": -1,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 497724578,
+      "vote_percent": 10000,
+      "voter": "healthcare",
+      "weight": "1207918840148852"
+    },
+    {
+      "author": "jamielefay",
+      "id": 3344709,
+      "last_update": "2016-08-25T22:28:54",
+      "num_changes": -1,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 763593782,
+      "vote_percent": 10000,
+      "voter": "daniel.pan",
+      "weight": "1851065537354896"
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.pat.json
new file mode 100644
index 00000000..436792c0
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "roelandp",
+      "id": 3355166,
+      "last_update": "2016-08-25T21:16:24",
+      "num_changes": 0,
+      "permlink": "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours",
+      "rshares": 67807559,
+      "vote_percent": 10000,
+      "voter": "pickoum",
+      "weight": 11168221241042
+    },
+    {
+      "author": "anxietymaven",
+      "id": 3411175,
+      "last_update": "2016-08-26T22:06:21",
+      "num_changes": 0,
+      "permlink": "re-adm-re-anxietymaven-ask-yourself-one-question-fuck-steemit-or-nah-20160825t211407406z",
+      "rshares": -742966944841,
+      "vote_percent": -10000,
+      "voter": "pfunk",
+      "weight": 0
+    },
+    {
+      "author": "jamielefay",
+      "id": 3358512,
+      "last_update": "2016-08-25T22:28:54",
+      "num_changes": 0,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 2476122539,
+      "vote_percent": 10000,
+      "voter": "boy",
+      "weight": 6006017962432724
+    },
+    {
+      "author": "jamielefay",
+      "id": 3358500,
+      "last_update": "2016-08-25T22:28:45",
+      "num_changes": 0,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 3005691694,
+      "vote_percent": 10000,
+      "voter": "bue-witness",
+      "weight": 7417167962646132
+    },
+    {
+      "author": "jamielefay",
+      "id": 3358517,
+      "last_update": "2016-08-25T22:28:57",
+      "num_changes": 0,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 557353091,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 1350783817158092
+    },
+    {
+      "author": "jamielefay",
+      "id": 3358502,
+      "last_update": "2016-08-25T22:28:48",
+      "num_changes": 0,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 42722553918,
+      "vote_percent": 10000,
+      "voter": "bue",
+      "weight": 104552198157919482
+    },
+    {
+      "author": "jamielefay",
+      "id": 3358505,
+      "last_update": "2016-08-25T22:28:48",
+      "num_changes": 0,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 1327119432,
+      "vote_percent": 10000,
+      "voter": "mini",
+      "weight": 3221828527667312
+    },
+    {
+      "author": "jamielefay",
+      "id": 3358518,
+      "last_update": "2016-08-25T22:29:00",
+      "num_changes": 0,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 170849766,
+      "vote_percent": 10000,
+      "voter": "moon",
+      "weight": 414011598841308
+    },
+    {
+      "author": "jamielefay",
+      "id": 3358508,
+      "last_update": "2016-08-25T22:28:51",
+      "num_changes": 0,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 497724578,
+      "vote_percent": 10000,
+      "voter": "healthcare",
+      "weight": 1207918840148852
+    },
+    {
+      "author": "jamielefay",
+      "id": 3358515,
+      "last_update": "2016-08-25T22:28:54",
+      "num_changes": 0,
+      "permlink": "ahe-ey-sky-falling-an-original-novel-part-1-audiobook",
+      "rshares": 763593782,
+      "vote_percent": 10000,
+      "voter": "daniel.pan",
+      "weight": 1851065537354896
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.tavern.yaml
new file mode 100644
index 00000000..2ece20a4
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_one_before_last.tavern.yaml
@@ -0,0 +1,33 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_comment_voter" one before last voter
+
+marks:
+  - patterntest # only first is correct, rest is basically random
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_comment_voter" one before last voter
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["roelandp", "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours", "pickoum"],
+            "limit": 10,
+            "order": "by_comment_voter",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_comment_voter_one_before_last"
+          directory: "database_api_patterns/list_votes_pre24"
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.orig.json
new file mode 100644
index 00000000..a5c362ed
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "steemit",
+      "id": 603086,
+      "last_update": "2016-07-19T04:40:30",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 95219365,
+      "vote_percent": 10000,
+      "voter": "curator",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 1614263,
+      "last_update": "2016-07-31T19:55:21",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 232295871,
+      "vote_percent": 10000,
+      "voter": "dubovoy",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 4098784,
+      "last_update": "2016-09-09T15:34:36",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 0,
+      "vote_percent": 10000,
+      "voter": "solos",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 650424,
+      "last_update": "2016-07-19T20:29:33",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 96945805,
+      "vote_percent": 10000,
+      "voter": "creatorgalaxy",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 776832,
+      "last_update": "2016-07-21T12:24:27",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 99813231,
+      "vote_percent": 10000,
+      "voter": "trigonice29",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 3479202,
+      "last_update": "2016-08-28T16:49:57",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 0,
+      "vote_percent": 10000,
+      "voter": "blysards",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 2783362,
+      "last_update": "2016-08-16T10:07:39",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 3721016208,
+      "vote_percent": 10000,
+      "voter": "uwe69",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 911514,
+      "last_update": "2016-07-23T13:32:36",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 1279854,
+      "vote_percent": 10000,
+      "voter": "nigmat",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 2217163,
+      "last_update": "2016-08-07T05:23:48",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": "13974353753",
+      "vote_percent": 10000,
+      "voter": "magicmonk",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 2633913,
+      "last_update": "2016-08-13T15:16:36",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": "4968585456",
+      "vote_percent": 10000,
+      "voter": "satoshifpv",
+      "weight": 0
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.pat.json
new file mode 100644
index 00000000..a5c362ed
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "steemit",
+      "id": 603086,
+      "last_update": "2016-07-19T04:40:30",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 95219365,
+      "vote_percent": 10000,
+      "voter": "curator",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 1614263,
+      "last_update": "2016-07-31T19:55:21",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 232295871,
+      "vote_percent": 10000,
+      "voter": "dubovoy",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 4098784,
+      "last_update": "2016-09-09T15:34:36",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 0,
+      "vote_percent": 10000,
+      "voter": "solos",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 650424,
+      "last_update": "2016-07-19T20:29:33",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 96945805,
+      "vote_percent": 10000,
+      "voter": "creatorgalaxy",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 776832,
+      "last_update": "2016-07-21T12:24:27",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 99813231,
+      "vote_percent": 10000,
+      "voter": "trigonice29",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 3479202,
+      "last_update": "2016-08-28T16:49:57",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 0,
+      "vote_percent": 10000,
+      "voter": "blysards",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 2783362,
+      "last_update": "2016-08-16T10:07:39",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 3721016208,
+      "vote_percent": 10000,
+      "voter": "uwe69",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 911514,
+      "last_update": "2016-07-23T13:32:36",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 1279854,
+      "vote_percent": 10000,
+      "voter": "nigmat",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 2217163,
+      "last_update": "2016-08-07T05:23:48",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": "13974353753",
+      "vote_percent": 10000,
+      "voter": "magicmonk",
+      "weight": 0
+    },
+    {
+      "author": "steemit",
+      "id": 2633913,
+      "last_update": "2016-08-13T15:16:36",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": "4968585456",
+      "vote_percent": 10000,
+      "voter": "satoshifpv",
+      "weight": 0
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.tavern.yaml
new file mode 100644
index 00000000..68f970a5
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_comment_voter_only_voter.tavern.yaml
@@ -0,0 +1,35 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_comment_voter" only voter
+
+marks:
+  - patterntest # shows first post votes because primary ordering is by comment and when comment is skipped it can only start with the very first post
+  - failing
+  - xfail # to be checked why there is such a difference in order (both old and new is by voter id in this case since comment is the same)
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_comment_voter" only voter
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "", "winstonwolfe"],
+            "limit": 10,
+            "order": "by_comment_voter",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_comment_voter_only_voter"
+          directory: "database_api_patterns/list_votes_pre24"
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.orig.json
new file mode 100644
index 00000000..9cf5fe8c
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "satoshi",
+      "id": 54513,
+      "last_update": "2016-06-05T06:52:00",
+      "num_changes": -1,
+      "permlink": "bulk-generate-privkeys",
+      "rshares": "4800000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 287703877
+    },
+    {
+      "author": "au1nethyb1",
+      "id": 54508,
+      "last_update": "2016-06-05T06:50:27",
+      "num_changes": -1,
+      "permlink": "reducing-friction-for-critical-mass-adoption-of-steemit",
+      "rshares": "4900000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 4
+    },
+    {
+      "author": "blocktrades",
+      "id": 54511,
+      "last_update": "2016-06-05T06:50:48",
+      "num_changes": -1,
+      "permlink": "-blocktrades-adds-support-for-directly-buyingselling-steem",
+      "rshares": "4900000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 1
+    },
+    {
+      "author": "nextgencrypto",
+      "id": 54512,
+      "last_update": "2016-06-05T06:51:15",
+      "num_changes": -1,
+      "permlink": "request-for-proposal-steem-wordpress-plugin",
+      "rshares": "4900000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 2
+    },
+    {
+      "author": "dan",
+      "id": 54509,
+      "last_update": "2016-06-05T06:50:36",
+      "num_changes": -1,
+      "permlink": "is-the-dao-going-to-be-doa",
+      "rshares": "4900000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 3
+    },
+    {
+      "author": "judyhopps",
+      "id": 54507,
+      "last_update": "2016-06-05T06:50:03",
+      "num_changes": -1,
+      "permlink": "hi-i-googled-something-and-ended-up-here",
+      "rshares": "5000000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 17
+    },
+    {
+      "author": "clains",
+      "id": 54504,
+      "last_update": "2016-06-05T06:48:18",
+      "num_changes": -1,
+      "permlink": "hello-world-my-name-is-clains",
+      "rshares": "5000000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 9
+    },
+    {
+      "author": "smooth",
+      "id": 54505,
+      "last_update": "2016-06-05T06:48:27",
+      "num_changes": -1,
+      "permlink": "voting-is-a-popularity-contest",
+      "rshares": "5000000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 12
+    },
+    {
+      "author": "bleepcoin",
+      "id": 54506,
+      "last_update": "2016-06-05T06:48:30",
+      "num_changes": -1,
+      "permlink": "hi-im-ollie",
+      "rshares": "5000000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 71
+    },
+    {
+      "author": "donkeypong",
+      "id": 54502,
+      "last_update": "2016-06-05T06:48:12",
+      "num_changes": -1,
+      "permlink": "my-name-is-ziggy-aka-donkeypongs-companion",
+      "rshares": "5100000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 61
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.pat.json
new file mode 100644
index 00000000..e7304d98
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "satoshi",
+      "id": 54714,
+      "last_update": "2016-06-05T06:52:00",
+      "num_changes": 0,
+      "permlink": "bulk-generate-privkeys",
+      "rshares": 4800000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 287703877
+    },
+    {
+      "author": "au1nethyb1",
+      "id": 54709,
+      "last_update": "2016-06-05T06:50:27",
+      "num_changes": 0,
+      "permlink": "reducing-friction-for-critical-mass-adoption-of-steemit",
+      "rshares": 4900000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 4
+    },
+    {
+      "author": "blocktrades",
+      "id": 54712,
+      "last_update": "2016-06-05T06:50:48",
+      "num_changes": 0,
+      "permlink": "-blocktrades-adds-support-for-directly-buyingselling-steem",
+      "rshares": 4900000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 1
+    },
+    {
+      "author": "nextgencrypto",
+      "id": 54713,
+      "last_update": "2016-06-05T06:51:15",
+      "num_changes": 0,
+      "permlink": "request-for-proposal-steem-wordpress-plugin",
+      "rshares": 4900000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 2
+    },
+    {
+      "author": "dan",
+      "id": 54710,
+      "last_update": "2016-06-05T06:50:36",
+      "num_changes": 0,
+      "permlink": "is-the-dao-going-to-be-doa",
+      "rshares": 4900000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 3
+    },
+    {
+      "author": "judyhopps",
+      "id": 54708,
+      "last_update": "2016-06-05T06:50:03",
+      "num_changes": 0,
+      "permlink": "hi-i-googled-something-and-ended-up-here",
+      "rshares": 5000000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 17
+    },
+    {
+      "author": "clains",
+      "id": 54705,
+      "last_update": "2016-06-05T06:48:18",
+      "num_changes": 0,
+      "permlink": "hello-world-my-name-is-clains",
+      "rshares": 5000000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 9
+    },
+    {
+      "author": "smooth",
+      "id": 54706,
+      "last_update": "2016-06-05T06:48:27",
+      "num_changes": 0,
+      "permlink": "voting-is-a-popularity-contest",
+      "rshares": 5000000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 12
+    },
+    {
+      "author": "bleepcoin",
+      "id": 54707,
+      "last_update": "2016-06-05T06:48:30",
+      "num_changes": 0,
+      "permlink": "hi-im-ollie",
+      "rshares": 5000000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 71
+    },
+    {
+      "author": "donkeypong",
+      "id": 54703,
+      "last_update": "2016-06-05T06:48:12",
+      "num_changes": 0,
+      "permlink": "my-name-is-ziggy-aka-donkeypongs-companion",
+      "rshares": 5100000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 61
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.tavern.yaml
new file mode 100644
index 00000000..75e4b718
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_author_permlink.tavern.yaml
@@ -0,0 +1,33 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_voter_comment" author + permlink
+
+marks:
+  - patterntest # show "voter": "nxt2" votes, not connected with author and permlink (like no data)
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_comment_voter" author + permlink
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "roelandp", "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours"],
+            "limit": 10,
+            "order": "by_voter_comment",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_voter_comment_author_permlink"
+          directory: "database_api_patterns/list_votes_pre24"
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.orig.json
new file mode 100644
index 00000000..1f6a7169
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "steemit",
+      "id": 9,
+      "last_update": "2016-04-07T19:15:36",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": 375241,
+      "vote_percent": 100,
+      "voter": "dantheman",
+      "weight": "32866333630"
+    },
+    {
+      "author": "admin",
+      "id": 73,
+      "last_update": "2016-04-08T20:09:33",
+      "num_changes": -1,
+      "permlink": "firstpost",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "proskynneo",
+      "id": 10,
+      "last_update": "2016-04-07T19:55:42",
+      "num_changes": -1,
+      "permlink": "steemit-firstpost-1",
+      "rshares": 375241,
+      "vote_percent": 100,
+      "voter": "dantheman",
+      "weight": "7884736843"
+    },
+    {
+      "author": "red",
+      "id": 278,
+      "last_update": "2016-04-15T18:24:48",
+      "num_changes": -1,
+      "permlink": "steemit-firstpost-2",
+      "rshares": -376603,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "red",
+      "id": 8,
+      "last_update": "2016-04-07T19:15:24",
+      "num_changes": -1,
+      "permlink": "red-dailydecrypt-1",
+      "rshares": 375241,
+      "vote_percent": 100,
+      "voter": "dantheman",
+      "weight": "33132337607"
+    },
+    {
+      "author": "abit",
+      "id": 67,
+      "last_update": "2016-04-08T19:13:21",
+      "num_changes": -1,
+      "permlink": "abit-first-post",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "abit",
+      "id": 279,
+      "last_update": "2016-04-15T18:25:33",
+      "num_changes": -1,
+      "permlink": "witness-category",
+      "rshares": -376603,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "abit",
+      "id": 71,
+      "last_update": "2016-04-08T19:14:27",
+      "num_changes": -1,
+      "permlink": "miner-category",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "abit",
+      "id": 70,
+      "last_update": "2016-04-08T19:14:00",
+      "num_changes": -1,
+      "permlink": "spam",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "abit",
+      "id": 72,
+      "last_update": "2016-04-08T19:14:33",
+      "num_changes": -1,
+      "permlink": "abit-spam-post1",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.pat.json
new file mode 100644
index 00000000..3dfae800
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "steemit",
+      "id": 10,
+      "last_update": "2016-04-07T19:15:36",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": 375241,
+      "vote_percent": 100,
+      "voter": "dantheman",
+      "weight": 32866333630
+    },
+    {
+      "author": "admin",
+      "id": 74,
+      "last_update": "2016-04-08T20:09:33",
+      "num_changes": 0,
+      "permlink": "firstpost",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "proskynneo",
+      "id": 11,
+      "last_update": "2016-04-07T19:55:42",
+      "num_changes": 0,
+      "permlink": "steemit-firstpost-1",
+      "rshares": 375241,
+      "vote_percent": 100,
+      "voter": "dantheman",
+      "weight": 7884736843
+    },
+    {
+      "author": "red",
+      "id": 279,
+      "last_update": "2016-04-15T18:24:48",
+      "num_changes": 0,
+      "permlink": "steemit-firstpost-2",
+      "rshares": -376603,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "red",
+      "id": 9,
+      "last_update": "2016-04-07T19:15:24",
+      "num_changes": 0,
+      "permlink": "red-dailydecrypt-1",
+      "rshares": 375241,
+      "vote_percent": 100,
+      "voter": "dantheman",
+      "weight": 33132337607
+    },
+    {
+      "author": "abit",
+      "id": 68,
+      "last_update": "2016-04-08T19:13:21",
+      "num_changes": 0,
+      "permlink": "abit-first-post",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "abit",
+      "id": 280,
+      "last_update": "2016-04-15T18:25:33",
+      "num_changes": 0,
+      "permlink": "witness-category",
+      "rshares": -376603,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "abit",
+      "id": 72,
+      "last_update": "2016-04-08T19:14:27",
+      "num_changes": 0,
+      "permlink": "miner-category",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "abit",
+      "id": 71,
+      "last_update": "2016-04-08T19:14:00",
+      "num_changes": 0,
+      "permlink": "spam",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    },
+    {
+      "author": "abit",
+      "id": 73,
+      "last_update": "2016-04-08T19:14:33",
+      "num_changes": 0,
+      "permlink": "abit-spam-post1",
+      "rshares": -375241,
+      "vote_percent": -100,
+      "voter": "dantheman",
+      "weight": 0
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.tavern.yaml
new file mode 100644
index 00000000..afe5178a
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_first.tavern.yaml
@@ -0,0 +1,33 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_voter_comment"
+
+marks:
+  - patterntest
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: list_votes_by_voter_comment
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start":["nxt2", "roelandp", "tldr-an-exploration-in-steem-botting-what-i-learned-since-it-s-inception-and-downfall-over-the-course-of-20-hours"],
+            "limit": 10,
+            "order": "by_voter_comment",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_voter_comment_first"
+          directory: "database_api_patterns/list_votes_pre24"
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.orig.json
new file mode 100644
index 00000000..9cf5fe8c
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "satoshi",
+      "id": 54513,
+      "last_update": "2016-06-05T06:52:00",
+      "num_changes": -1,
+      "permlink": "bulk-generate-privkeys",
+      "rshares": "4800000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 287703877
+    },
+    {
+      "author": "au1nethyb1",
+      "id": 54508,
+      "last_update": "2016-06-05T06:50:27",
+      "num_changes": -1,
+      "permlink": "reducing-friction-for-critical-mass-adoption-of-steemit",
+      "rshares": "4900000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 4
+    },
+    {
+      "author": "blocktrades",
+      "id": 54511,
+      "last_update": "2016-06-05T06:50:48",
+      "num_changes": -1,
+      "permlink": "-blocktrades-adds-support-for-directly-buyingselling-steem",
+      "rshares": "4900000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 1
+    },
+    {
+      "author": "nextgencrypto",
+      "id": 54512,
+      "last_update": "2016-06-05T06:51:15",
+      "num_changes": -1,
+      "permlink": "request-for-proposal-steem-wordpress-plugin",
+      "rshares": "4900000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 2
+    },
+    {
+      "author": "dan",
+      "id": 54509,
+      "last_update": "2016-06-05T06:50:36",
+      "num_changes": -1,
+      "permlink": "is-the-dao-going-to-be-doa",
+      "rshares": "4900000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 3
+    },
+    {
+      "author": "judyhopps",
+      "id": 54507,
+      "last_update": "2016-06-05T06:50:03",
+      "num_changes": -1,
+      "permlink": "hi-i-googled-something-and-ended-up-here",
+      "rshares": "5000000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 17
+    },
+    {
+      "author": "clains",
+      "id": 54504,
+      "last_update": "2016-06-05T06:48:18",
+      "num_changes": -1,
+      "permlink": "hello-world-my-name-is-clains",
+      "rshares": "5000000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 9
+    },
+    {
+      "author": "smooth",
+      "id": 54505,
+      "last_update": "2016-06-05T06:48:27",
+      "num_changes": -1,
+      "permlink": "voting-is-a-popularity-contest",
+      "rshares": "5000000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 12
+    },
+    {
+      "author": "bleepcoin",
+      "id": 54506,
+      "last_update": "2016-06-05T06:48:30",
+      "num_changes": -1,
+      "permlink": "hi-im-ollie",
+      "rshares": "5000000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 71
+    },
+    {
+      "author": "donkeypong",
+      "id": 54502,
+      "last_update": "2016-06-05T06:48:12",
+      "num_changes": -1,
+      "permlink": "my-name-is-ziggy-aka-donkeypongs-companion",
+      "rshares": "5100000000",
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 61
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.pat.json
new file mode 100644
index 00000000..e7304d98
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "satoshi",
+      "id": 54714,
+      "last_update": "2016-06-05T06:52:00",
+      "num_changes": 0,
+      "permlink": "bulk-generate-privkeys",
+      "rshares": 4800000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 287703877
+    },
+    {
+      "author": "au1nethyb1",
+      "id": 54709,
+      "last_update": "2016-06-05T06:50:27",
+      "num_changes": 0,
+      "permlink": "reducing-friction-for-critical-mass-adoption-of-steemit",
+      "rshares": 4900000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 4
+    },
+    {
+      "author": "blocktrades",
+      "id": 54712,
+      "last_update": "2016-06-05T06:50:48",
+      "num_changes": 0,
+      "permlink": "-blocktrades-adds-support-for-directly-buyingselling-steem",
+      "rshares": 4900000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 1
+    },
+    {
+      "author": "nextgencrypto",
+      "id": 54713,
+      "last_update": "2016-06-05T06:51:15",
+      "num_changes": 0,
+      "permlink": "request-for-proposal-steem-wordpress-plugin",
+      "rshares": 4900000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 2
+    },
+    {
+      "author": "dan",
+      "id": 54710,
+      "last_update": "2016-06-05T06:50:36",
+      "num_changes": 0,
+      "permlink": "is-the-dao-going-to-be-doa",
+      "rshares": 4900000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 3
+    },
+    {
+      "author": "judyhopps",
+      "id": 54708,
+      "last_update": "2016-06-05T06:50:03",
+      "num_changes": 0,
+      "permlink": "hi-i-googled-something-and-ended-up-here",
+      "rshares": 5000000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 17
+    },
+    {
+      "author": "clains",
+      "id": 54705,
+      "last_update": "2016-06-05T06:48:18",
+      "num_changes": 0,
+      "permlink": "hello-world-my-name-is-clains",
+      "rshares": 5000000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 9
+    },
+    {
+      "author": "smooth",
+      "id": 54706,
+      "last_update": "2016-06-05T06:48:27",
+      "num_changes": 0,
+      "permlink": "voting-is-a-popularity-contest",
+      "rshares": 5000000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 12
+    },
+    {
+      "author": "bleepcoin",
+      "id": 54707,
+      "last_update": "2016-06-05T06:48:30",
+      "num_changes": 0,
+      "permlink": "hi-im-ollie",
+      "rshares": 5000000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 71
+    },
+    {
+      "author": "donkeypong",
+      "id": 54703,
+      "last_update": "2016-06-05T06:48:12",
+      "num_changes": 0,
+      "permlink": "my-name-is-ziggy-aka-donkeypongs-companion",
+      "rshares": 5100000000,
+      "vote_percent": 10000,
+      "voter": "nxt2",
+      "weight": 61
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.tavern.yaml
new file mode 100644
index 00000000..2f3fcaee
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_no_data.tavern.yaml
@@ -0,0 +1,33 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_voter_comment" no data
+
+marks:
+  - patterntest
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_voter_comment" no data
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["", "", ""],
+            "limit": 10,
+            "order": "by_voter_comment",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_voter_comment_no_data"
+          directory: "database_api_patterns/list_votes_pre24"
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.orig.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.orig.json
new file mode 100644
index 00000000..814436f3
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.orig.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "wackou",
+      "id": 4468,
+      "last_update": "2016-05-04T05:20:06",
+      "num_changes": -1,
+      "permlink": "wackou-witness-post",
+      "rshares": 3782373700,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 27
+    },
+    {
+      "author": "bue-witness",
+      "id": 107,
+      "last_update": "2016-04-10T15:31:15",
+      "num_changes": -1,
+      "permlink": "bue-witness-post",
+      "rshares": 206,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 5
+    },
+    {
+      "author": "boy",
+      "id": 193,
+      "last_update": "2016-04-13T18:12:15",
+      "num_changes": -1,
+      "permlink": "news",
+      "rshares": 3936,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 41823962
+    },
+    {
+      "author": "bue",
+      "id": 169,
+      "last_update": "2016-04-13T12:09:39",
+      "num_changes": -1,
+      "permlink": "news",
+      "rshares": 3936,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 13204514
+    },
+    {
+      "author": "pop",
+      "id": 4460,
+      "last_update": "2016-05-04T05:16:42",
+      "num_changes": -1,
+      "permlink": "china",
+      "rshares": 3859565000,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 94422
+    },
+    {
+      "author": "pop",
+      "id": 4459,
+      "last_update": "2016-05-04T05:16:39",
+      "num_changes": -1,
+      "permlink": "taiwanese",
+      "rshares": 3936756300,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 79128
+    },
+    {
+      "author": "ice",
+      "id": 4462,
+      "last_update": "2016-05-04T05:16:48",
+      "num_changes": -1,
+      "permlink": "taiwan",
+      "rshares": 3859565000,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 44360
+    },
+    {
+      "author": "pharesim",
+      "id": 11966,
+      "last_update": "2016-08-27T00:39:00",
+      "num_changes": -1,
+      "permlink": "witness-post",
+      "rshares": 3627991100,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 3
+    },
+    {
+      "author": "silver",
+      "id": 4495,
+      "last_update": "2016-05-04T05:21:57",
+      "num_changes": -1,
+      "permlink": "panama-papers",
+      "rshares": 3319225900,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 6663372
+    },
+    {
+      "author": "dele-puppy",
+      "id": 4480,
+      "last_update": "2016-05-04T05:20:54",
+      "num_changes": -1,
+      "permlink": "dele-puppy-witness-thread",
+      "rshares": 3550799800,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 2464
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.pat.json b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.pat.json
new file mode 100644
index 00000000..5b6c8b93
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.pat.json
@@ -0,0 +1,114 @@
+{
+  "votes": [
+    {
+      "author": "wackou",
+      "id": 4469,
+      "last_update": "2016-05-04T05:20:06",
+      "num_changes": 0,
+      "permlink": "wackou-witness-post",
+      "rshares": 3782373700,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 27
+    },
+    {
+      "author": "bue-witness",
+      "id": 108,
+      "last_update": "2016-04-10T15:31:15",
+      "num_changes": 0,
+      "permlink": "bue-witness-post",
+      "rshares": 206,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 5
+    },
+    {
+      "author": "boy",
+      "id": 194,
+      "last_update": "2016-04-13T18:12:15",
+      "num_changes": 0,
+      "permlink": "news",
+      "rshares": 3936,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 41823962
+    },
+    {
+      "author": "bue",
+      "id": 170,
+      "last_update": "2016-04-13T12:09:39",
+      "num_changes": 0,
+      "permlink": "news",
+      "rshares": 3936,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 13204514
+    },
+    {
+      "author": "pop",
+      "id": 4461,
+      "last_update": "2016-05-04T05:16:42",
+      "num_changes": 0,
+      "permlink": "china",
+      "rshares": 3859565000,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 94422
+    },
+    {
+      "author": "pop",
+      "id": 4460,
+      "last_update": "2016-05-04T05:16:39",
+      "num_changes": 0,
+      "permlink": "taiwanese",
+      "rshares": 3936756300,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 79128
+    },
+    {
+      "author": "ice",
+      "id": 4463,
+      "last_update": "2016-05-04T05:16:48",
+      "num_changes": 0,
+      "permlink": "taiwan",
+      "rshares": 3859565000,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 44360
+    },
+    {
+      "author": "pharesim",
+      "id": 11967,
+      "last_update": "2016-08-27T00:39:00",
+      "num_changes": 1,
+      "permlink": "witness-post",
+      "rshares": 3627991100,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 3
+    },
+    {
+      "author": "silver",
+      "id": 4496,
+      "last_update": "2016-05-04T05:21:57",
+      "num_changes": 0,
+      "permlink": "panama-papers",
+      "rshares": 3319225900,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 6663372
+    },
+    {
+      "author": "dele-puppy",
+      "id": 4481,
+      "last_update": "2016-05-04T05:20:54",
+      "num_changes": 0,
+      "permlink": "dele-puppy-witness-thread",
+      "rshares": 3550799800,
+      "vote_percent": 10000,
+      "voter": "bunny",
+      "weight": 2464
+    }
+  ]
+}
diff --git a/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.tavern.yaml b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.tavern.yaml
new file mode 100644
index 00000000..4b167b62
--- /dev/null
+++ b/hivemind/tavern/database_api_patterns/list_votes_pre24/by_voter_comment_voter.tavern.yaml
@@ -0,0 +1,33 @@
+---
+test_name: Hivemind database_api.list_votes patterns test order "by_voter_comment" voter
+
+marks:
+  - patterntest
+
+includes:
+  - !include ../../common.yaml
+
+stages:
+  - name: database_api.list_votes patterns test order "by_voter_comment" voter
+    request:
+      url: "{service.proto:s}://{service.server:s}:{service.port}/"
+      method: POST
+      headers:
+        content-type: application/json
+      json:
+        jsonrpc: "2.0"
+        id: 1
+        method: "database_api.list_votes_pre24"
+        params:
+          {
+            "start": ["bunny", "", ""],
+            "limit": 10,
+            "order": "by_voter_comment",
+          }
+    response:
+      status_code: 200
+      verify_response_with:
+        function: validate_response:compare_response_with_pattern
+        extra_kwargs:
+          method: "by_voter_comment_voter"
+          directory: "database_api_patterns/list_votes_pre24"
-- 
GitLab