unit-testing:
stage: test
script:
- - MIX_ENV=test mix test
+ - MIX_ENV=test mix test --trace
domain_count = Enum.count(peers)
status_query = from(u in User.local_user_query,
select: fragment("sum((?->>'note_count')::int)", u.info))
- status_count = Repo.one(status_query) |> IO.inspect
+ status_count = Repo.one(status_query)
user_count = Repo.aggregate(User.local_user_query, :count, :id)
Agent.update(__MODULE__, fn _ ->
{peers, %{domain_count: domain_count, status_count: status_count, user_count: user_count}}
{:ok, activity} = TwitterAPI.create_status(user, %{"status" => "hey @#{other_user.nickname}"})
{:ok, [notification]} = Notification.create_notifications(activity)
- {:error, notification} = Notification.get(user, notification.id)
+ {:error, _notification} = Notification.get(user, notification.id)
end
end
{:ok, activity} = TwitterAPI.create_status(user, %{"status" => "hey @#{other_user.nickname}"})
{:ok, [notification]} = Notification.create_notifications(activity)
- {:error, notification} = Notification.dismiss(user, notification.id)
+ {:error, _notification} = Notification.dismiss(user, notification.id)
end
end
cs = Object.change(%Object{}, %{data: %{id: object.data["id"]}})
assert cs.valid?
- {:error, result} = Repo.insert(cs)
+ {:error, _result} = Repo.insert(cs)
end
end
end
assert [addressed] == User.get_recipients_from_activity(activity)
{:ok, user} = User.follow(user, actor)
- {:ok, user_two} = User.follow(user_two, actor)
+ {:ok, _user_two} = User.follow(user_two, actor)
recipients = User.get_recipients_from_activity(activity)
assert length(recipients) == 2
assert user in recipients
describe "public fetch activities" do
test "retrieves public activities" do
- activities = ActivityPub.fetch_public_activities
+ _activities = ActivityPub.fetch_public_activities
%{public: public} = ActivityBuilder.public_and_non_public
alias Pleroma.Web.{OStatus, CommonAPI}
import Pleroma.Factory
+ import ExUnit.CaptureLog
test "the home timeline", %{conn: conn} do
user = insert(:user)
test "the public timeline", %{conn: conn} do
following = insert(:user)
- {:ok, _activity} = TwitterAPI.create_status(following, %{"status" => "test"})
- {:ok, [_activity]} = OStatus.fetch_activity_from_url("https://shitposter.club/notice/2827873")
+ capture_log fn ->
+ {:ok, _activity} = TwitterAPI.create_status(following, %{"status" => "test"})
+ {:ok, [_activity]} = OStatus.fetch_activity_from_url("https://shitposter.club/notice/2827873")
- conn = conn
- |> get("/api/v1/timelines/public", %{"local" => "False"})
+ conn = conn
+ |> get("/api/v1/timelines/public", %{"local" => "False"})
- assert length(json_response(conn, 200)) == 2
+ assert length(json_response(conn, 200)) == 2
- conn = build_conn()
- |> get("/api/v1/timelines/public", %{"local" => "True"})
+ conn = build_conn()
+ |> get("/api/v1/timelines/public", %{"local" => "True"})
- assert [%{"content" => "test"}] = json_response(conn, 200)
+ assert [%{"content" => "test"}] = json_response(conn, 200)
- conn = build_conn()
- |> get("/api/v1/timelines/public", %{"local" => "1"})
+ conn = build_conn()
+ |> get("/api/v1/timelines/public", %{"local" => "1"})
- assert [%{"content" => "test"}] = json_response(conn, 200)
+ assert [%{"content" => "test"}] = json_response(conn, 200)
+ end
end
test "posting a status", %{conn: conn} do
other_user = insert(:user)
{:ok, activity} = TwitterAPI.create_status(other_user, %{"status" => "hi @#{user.nickname}"})
- {:ok, [notification]} = Notification.create_notifications(activity)
+ {:ok, [_notification]} = Notification.create_notifications(activity)
conn = conn
|> assign(:user, user)
other_user = insert(:user)
{:ok, activity} = TwitterAPI.create_status(other_user, %{"status" => "hi @#{user.nickname}"})
- {:ok, [notification]} = Notification.create_notifications(activity)
+ {:ok, [_notification]} = Notification.create_notifications(activity)
conn = conn
|> assign(:user, user)
test "hashtag timeline", %{conn: conn} do
following = insert(:user)
- {:ok, activity} = TwitterAPI.create_status(following, %{"status" => "test #2hu"})
- {:ok, [_activity]} = OStatus.fetch_activity_from_url("https://shitposter.club/notice/2827873")
-
- conn = conn
- |> get("/api/v1/timelines/tag/2hu")
+ capture_log fn ->
+ {:ok, activity} = TwitterAPI.create_status(following, %{"status" => "test #2hu"})
+ {:ok, [_activity]} = OStatus.fetch_activity_from_url("https://shitposter.club/notice/2827873")
+ conn = conn
+ |> get("/api/v1/timelines/tag/2hu")
- assert [%{"id" => id}] = json_response(conn, 200)
+ assert [%{"id" => id}] = json_response(conn, 200)
- assert id == to_string(activity.id)
+ assert id == to_string(activity.id)
+ end
end
test "getting followers", %{conn: conn} do
|> assign(:user, user)
|> post("/api/v1/accounts/#{other_user.id}/follow")
- assert %{"id" => id, "following" => true} = json_response(conn, 200)
+ assert %{"id" => _id, "following" => true} = json_response(conn, 200)
user = Repo.get(User, user.id)
conn = build_conn()
|> assign(:user, user)
|> post("/api/v1/accounts/#{other_user.id}/unfollow")
- assert %{"id" => id, "following" => false} = json_response(conn, 200)
+ assert %{"id" => _id, "following" => false} = json_response(conn, 200)
user = Repo.get(User, user.id)
conn = build_conn()
|> assign(:user, user)
|> post("/api/v1/accounts/#{other_user.id}/block")
- assert %{"id" => id, "blocking" => true} = json_response(conn, 200)
+ assert %{"id" => _id, "blocking" => true} = json_response(conn, 200)
user = Repo.get(User, user.id)
conn = build_conn()
|> assign(:user, user)
|> post("/api/v1/accounts/#{other_user.id}/unblock")
- assert %{"id" => id, "blocking" => false} = json_response(conn, 200)
+ assert %{"id" => _id, "blocking" => false} = json_response(conn, 200)
end
test "getting a list of blocks", %{conn: conn} do
test "account search", %{conn: conn} do
user = insert(:user)
- user_two = insert(:user, %{nickname: "shp@shitposter.club"})
+ _user_two = insert(:user, %{nickname: "shp@shitposter.club"})
user_three = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"})
conn = conn
end
test "search fetches remote statuses", %{conn: conn} do
- conn = conn
- |> get("/api/v1/search", %{"q" => "https://shitposter.club/notice/2827873"})
- assert results = json_response(conn, 200)
+ capture_log fn ->
+ conn = conn
+ |> get("/api/v1/search", %{"q" => "https://shitposter.club/notice/2827873"})
+ assert results = json_response(conn, 200)
- [status] = results["statuses"]
- assert status["uri"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
+ [status] = results["statuses"]
+ assert status["uri"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
+ end
end
test "search fetches remote accounts", %{conn: conn} do
user = insert(:user)
object = Object.get_cached_by_ap_id(note.data["object"]["id"])
- {:ok, announce, object} = ActivityPub.announce(user, object)
+ {:ok, announce, _object} = ActivityPub.announce(user, object)
announce = Repo.get(Activity, announce.id)
user = insert(:user)
object = Object.get_by_ap_id(note.data["object"]["id"])
- {:ok, like, object} = Pleroma.Web.ActivityPub.ActivityPub.like(user, object)
+ {:ok, like, _object} = Pleroma.Web.ActivityPub.ActivityPub.like(user, object)
incoming = File.read!("test/fixtures/delete.xml")
|> String.replace("tag:mastodon.sdf.org,2017-06-10:objectId=310513:objectType=Status", note.data["object"]["id"])
assert response(conn, 200)
end
end
-
-defmodule Pleroma.Web.OStatusMock do
- import Pleroma.Factory
- def handle_incoming(_doc) do
- insert(:note_activity)
- end
-end
alias Pleroma.Web.XML
alias Pleroma.{Object, Repo, User, Activity}
import Pleroma.Factory
+ import ExUnit.CaptureLog
test "don't insert create notes twice" do
incoming = File.read!("test/fixtures/incoming_note_activity.xml")
test "handle incoming retweets - Mastodon, with CW" do
incoming = File.read!("test/fixtures/cw_retweet.xml")
- {:ok, [[activity, retweeted_activity]]} = OStatus.handle_incoming(incoming)
+ {:ok, [[_activity, retweeted_activity]]} = OStatus.handle_incoming(incoming)
assert retweeted_activity.data["object"]["summary"] == "Hey."
end
end
test "handle incoming favorites - GS, websub" do
- incoming = File.read!("test/fixtures/favorite.xml")
- {:ok, [[activity, favorited_activity]]} = OStatus.handle_incoming(incoming)
-
- assert activity.data["type"] == "Like"
- assert activity.data["actor"] == "https://social.heldscal.la/user/23211"
- assert activity.data["object"] == favorited_activity.data["object"]["id"]
- assert activity.data["id"] == "tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061643:2017-05-05T09:12:50+00:00"
-
- refute activity.local
- assert favorited_activity.data["type"] == "Create"
- assert favorited_activity.data["actor"] == "https://shitposter.club/user/1"
- assert favorited_activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
- refute favorited_activity.local
+ capture_log fn ->
+ incoming = File.read!("test/fixtures/favorite.xml")
+ {:ok, [[activity, favorited_activity]]} = OStatus.handle_incoming(incoming)
+
+ assert activity.data["type"] == "Like"
+ assert activity.data["actor"] == "https://social.heldscal.la/user/23211"
+ assert activity.data["object"] == favorited_activity.data["object"]["id"]
+ assert activity.data["id"] == "tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061643:2017-05-05T09:12:50+00:00"
+
+ refute activity.local
+ assert favorited_activity.data["type"] == "Create"
+ assert favorited_activity.data["actor"] == "https://shitposter.club/user/1"
+ assert favorited_activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
+ refute favorited_activity.local
+ end
end
test "handle conversation references" do
describe "fetching a status by it's HTML url" do
test "it builds a missing status from an html url" do
- url = "https://shitposter.club/notice/2827873"
- {:ok, [activity] } = OStatus.fetch_activity_from_url(url)
+ capture_log fn ->
+ url = "https://shitposter.club/notice/2827873"
+ {:ok, [activity] } = OStatus.fetch_activity_from_url(url)
- assert activity.data["actor"] == "https://shitposter.club/user/1"
- assert activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
+ assert activity.data["actor"] == "https://shitposter.club/user/1"
+ assert activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
+ end
end
test "it works for atom notes, too" do
end
test "it decodes a friendica public key" do
- key = Salmon.decode_key(@magickey_friendica)
+ _key = Salmon.decode_key(@magickey_friendica)
end
test "returns a public and private key from a pem" do
user = Repo.get_by(User, ap_id: activity.data["actor"])
{:ok, user} = Pleroma.Web.WebFinger.ensure_keys_present(user)
- poster = fn (url, data, headers, options) ->
+ poster = fn (url, _data, _headers, _options) ->
assert url == "http://example.org/salmon"
end
Salmon.publish(user, activity, poster)
follower = insert(:user)
followed = insert(:user)
- {:ok, follow} = ActivityPub.follow(follower, followed)
+ {:ok, _follow} = ActivityPub.follow(follower, followed)
{:ok, unfollow} = ActivityPub.unfollow(follower, followed)
map = ActivityRepresenter.to_map(unfollow, %{user: follower})
user = insert(:user)
follower_one = insert(:user)
follower_two = insert(:user)
- not_follower = insert(:user)
+ _not_follower = insert(:user)
{:ok, follower_one} = User.follow(follower_one, user)
{:ok, follower_two} = User.follow(follower_two, user)
user = insert(:user)
followed_one = insert(:user)
followed_two = insert(:user)
- not_followed = insert(:user)
+ _not_followed = insert(:user)
{:ok, user} = User.follow(user, followed_one)
{:ok, user} = User.follow(user, followed_two)
user = insert(:user)
followed_one = insert(:user)
followed_two = insert(:user)
- not_followed = insert(:user)
+ _not_followed = insert(:user)
{:ok, user} = User.follow(user, followed_one)
{:ok, user} = User.follow(user, followed_two)
user = insert(:user)
followed_one = insert(:user)
followed_two = insert(:user)
- not_followed = insert(:user)
+ _not_followed = insert(:user)
{:ok, user} = User.follow(user, followed_one)
{:ok, user} = User.follow(user, followed_two)
user = insert(:user)
followed_one = insert(:user)
followed_two = insert(:user)
- not_followed = insert(:user)
+ _not_followed = insert(:user)
{:ok, user} = User.follow(user, followed_one)
{:ok, user} = User.follow(user, followed_two)
user = insert(:user)
User.block(user, unblocked)
- {:ok, user, unblocked} = TwitterAPI.unblock(user, %{"user_id" => unblocked.id})
+ {:ok, user, _unblocked} = TwitterAPI.unblock(user, %{"user_id" => unblocked.id})
assert user.info["blocks"] == []
end
user = insert(:user)
User.block(user, unblocked)
- {:ok, user, unblocked} = TwitterAPI.unblock(user, %{"screen_name" => unblocked.nickname})
+ {:ok, user, _unblocked} = TwitterAPI.unblock(user, %{"screen_name" => unblocked.nickname})
assert user.info["blocks"] == []
end
assert represented == UserView.render("show.json", %{user: follower, for: user})
end
- test "A blocked user for the blocker", %{user: user} do
+ test "A blocked user for the blocker" do
user = insert(:user)
blocker = insert(:user)
User.block(blocker, user)
test "it works for friendica" do
user = "lain@squeet.me"
- {:ok, data} = WebFinger.finger(user)
-
+ {:ok, _data} = WebFinger.finger(user)
end
test "it gets the xrd endpoint" do
assert length(Repo.all(Activity)) == 0
end
end
-
-defmodule Pleroma.Web.OStatusMock do
- import Pleroma.Factory
- def handle_incoming(_doc) do
- insert(:note_activity)
- end
-end
signed = Websub.sign("secret", "text")
assert signed == "B8392C23690CCF871F37EC270BE1582DEC57A503" |> String.downcase
- signed = Websub.sign("secret", [["て"], ['す']])
+ _signed = Websub.sign("secret", [["て"], ['す']])
end
describe "renewing subscriptions" do
still_good = insert(:websub_client_subscription, %{valid_until: NaiveDateTime.add(now, 2 * day), topic: "http://example.org/still_good", state: "accepted"})
needs_refresh = insert(:websub_client_subscription, %{valid_until: NaiveDateTime.add(now, day - 100), topic: "http://example.org/needs_refresh", state: "accepted"})
- refresh = Websub.refresh_subscriptions()
+ _refresh = Websub.refresh_subscriptions()
assert still_good == Repo.get(WebsubClientSubscription, still_good.id)
refute needs_refresh == Repo.get(WebsubClientSubscription, needs_refresh.id)