logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

instance_test.exs (3303B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Mix.Tasks.Pleroma.InstanceTest do
  5. # Modifies the Application Environment, has to stay synchronous.
  6. use Pleroma.DataCase
  7. setup do
  8. File.mkdir_p!(tmp_path())
  9. on_exit(fn ->
  10. File.rm_rf(tmp_path())
  11. static_dir = Pleroma.Config.get([:instance, :static_dir], "test/instance_static/")
  12. if File.exists?(static_dir) do
  13. File.rm_rf(Path.join(static_dir, "robots.txt"))
  14. end
  15. end)
  16. # Is being modified by the mix task.
  17. clear_config([:instance, :static_dir])
  18. :ok
  19. end
  20. @uuid Ecto.UUID.generate()
  21. defp tmp_path do
  22. "/tmp/generated_files/#{@uuid}/"
  23. end
  24. test "running gen" do
  25. mix_task = fn ->
  26. Mix.Tasks.Pleroma.Instance.run([
  27. "gen",
  28. "--output",
  29. tmp_path() <> "generated_config.exs",
  30. "--output-psql",
  31. tmp_path() <> "setup.psql",
  32. "--domain",
  33. "test.pleroma.social",
  34. "--instance-name",
  35. "Pleroma",
  36. "--admin-email",
  37. "admin@example.com",
  38. "--notify-email",
  39. "notify@example.com",
  40. "--dbhost",
  41. "dbhost",
  42. "--dbname",
  43. "dbname",
  44. "--dbuser",
  45. "dbuser",
  46. "--dbpass",
  47. "dbpass",
  48. "--indexable",
  49. "y",
  50. "--db-configurable",
  51. "y",
  52. "--rum",
  53. "y",
  54. "--listen-port",
  55. "4000",
  56. "--listen-ip",
  57. "127.0.0.1",
  58. "--uploads-dir",
  59. "test/uploads",
  60. "--static-dir",
  61. "./test/../test/instance/static/",
  62. "--strip-uploads-location",
  63. "y",
  64. "--read-uploads-description",
  65. "y",
  66. "--dedupe-uploads",
  67. "n",
  68. "--anonymize-uploads",
  69. "n"
  70. ])
  71. end
  72. ExUnit.CaptureIO.capture_io(fn ->
  73. mix_task.()
  74. end)
  75. generated_config = File.read!(tmp_path() <> "generated_config.exs")
  76. assert generated_config =~ "host: \"test.pleroma.social\""
  77. assert generated_config =~ "name: \"Pleroma\""
  78. assert generated_config =~ "email: \"admin@example.com\""
  79. assert generated_config =~ "notify_email: \"notify@example.com\""
  80. assert generated_config =~ "hostname: \"dbhost\""
  81. assert generated_config =~ "database: \"dbname\""
  82. assert generated_config =~ "username: \"dbuser\""
  83. assert generated_config =~ "password: \"dbpass\""
  84. assert generated_config =~ "configurable_from_database: true"
  85. assert generated_config =~ "http: [ip: {127, 0, 0, 1}, port: 4000]"
  86. assert generated_config =~
  87. "filters: [Pleroma.Upload.Filter.Exiftool.StripLocation, Pleroma.Upload.Filter.Exiftool.ReadDescription]"
  88. assert File.read!(tmp_path() <> "setup.psql") == generated_setup_psql()
  89. assert File.exists?(Path.expand("./test/instance/static/robots.txt"))
  90. end
  91. defp generated_setup_psql do
  92. ~s(CREATE USER dbuser WITH ENCRYPTED PASSWORD 'dbpass';\nCREATE DATABASE dbname OWNER dbuser;\n\\c dbname;\n--Extensions made by ecto.migrate that need superuser access\nCREATE EXTENSION IF NOT EXISTS citext;\nCREATE EXTENSION IF NOT EXISTS pg_trgm;\nCREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";\nCREATE EXTENSION IF NOT EXISTS rum;\n)
  93. end
  94. end