Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F12553965
transfer_task_test.exs
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
5 KB
Referenced Files
None
Subscribers
None
transfer_task_test.exs
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Config.TransferTaskTest
do
use
Pleroma.DataCase
import
ExUnit.CaptureLog
import
Pleroma.Factory
alias
Pleroma.Config.TransferTask
setup
do
:
clear_config
(
:configurable_from_database
,
true
)
test
"transfer config values from db to env"
do
refute
Application
.
get_env
(
:pleroma
,
:test_key
)
refute
Application
.
get_env
(
:idna
,
:test_key
)
refute
Application
.
get_env
(
:postgrex
,
:test_key
)
initial
=
Application
.
get_env
(
:logger
,
:level
)
insert
(
:config
,
key
:
:test_key
,
value
:
[
live
:
2
,
com
:
3
])
insert
(
:config
,
group
:
:idna
,
key
:
:test_key
,
value
:
[
live
:
15
,
com
:
35
])
insert
(
:config
,
group
:
:postgrex
,
key
:
:test_key
,
value
:
:value
)
insert
(
:config
,
group
:
:logger
,
key
:
:level
,
value
:
:debug
)
TransferTask
.
start_link
([])
assert
Application
.
get_env
(
:pleroma
,
:test_key
)
==
[
live
:
2
,
com
:
3
]
assert
Application
.
get_env
(
:idna
,
:test_key
)
==
[
live
:
15
,
com
:
35
]
assert
Application
.
get_env
(
:logger
,
:level
)
==
:debug
assert
Application
.
get_env
(
:postgrex
,
:test_key
)
==
:value
on_exit
(
fn
->
Application
.
delete_env
(
:pleroma
,
:test_key
)
Application
.
delete_env
(
:idna
,
:test_key
)
Application
.
delete_env
(
:postgrex
,
:test_key
)
Application
.
put_env
(
:logger
,
:level
,
initial
)
end
)
end
test
"transfer config values for 1 group and some keys"
do
level
=
Application
.
get_env
(
:somegroup
,
:level
)
meta
=
Application
.
get_env
(
:somegroup
,
:meta
)
insert
(
:config
,
group
:
:somegroup
,
key
:
:level
,
value
:
:info
)
insert
(
:config
,
group
:
:somegroup
,
key
:
:meta
,
value
:
[
:none
])
TransferTask
.
start_link
([])
assert
Application
.
get_env
(
:somegroup
,
:level
)
==
:info
assert
Application
.
get_env
(
:somegroup
,
:meta
)
==
[
:none
]
on_exit
(
fn
->
Application
.
put_env
(
:somegroup
,
:level
,
level
)
Application
.
put_env
(
:somegroup
,
:meta
,
meta
)
end
)
end
test
"transfer config values with full subkey update"
do
clear_config
(
:emoji
)
clear_config
(
:assets
)
insert
(
:config
,
key
:
:emoji
,
value
:
[
groups
:
[
a
:
1
,
b
:
2
]])
insert
(
:config
,
key
:
:assets
,
value
:
[
mascots
:
[
a
:
1
,
b
:
2
]])
TransferTask
.
start_link
([])
emoji_env
=
Application
.
get_env
(
:pleroma
,
:emoji
)
assert
emoji_env
[
:groups
]
==
[
a
:
1
,
b
:
2
]
assets_env
=
Application
.
get_env
(
:pleroma
,
:assets
)
assert
assets_env
[
:mascots
]
==
[
a
:
1
,
b
:
2
]
end
describe
"pleroma restart"
do
setup
do
on_exit
(
fn
->
Restarter.Pleroma
.
refresh
()
# Restarter.Pleroma.refresh/0 is an asynchronous call.
# A GenServer will first finish the previous call before starting a new one.
# Here we do a synchronous call.
# That way we are sure that the previous call has finished before we continue.
# See https://stackoverflow.com/questions/51361856/how-to-use-task-await-with-genserver
Restarter.Pleroma
.
rebooted?
()
end
)
end
test
"don't restart if no reboot time settings were changed"
do
clear_config
(
:emoji
)
insert
(
:config
,
key
:
:emoji
,
value
:
[
groups
:
[
a
:
1
,
b
:
2
]])
refute
String
.
contains?
(
capture_log
(
fn
->
TransferTask
.
start_link
([])
# TransferTask.start_link/1 is an asynchronous call.
# A GenServer will first finish the previous call before starting a new one.
# Here we do a synchronous call.
# That way we are sure that the previous call has finished before we continue.
Restarter.Pleroma
.
rebooted?
()
end
),
"pleroma restarted"
)
end
test
"on reboot time key"
do
clear_config
(
:shout
)
insert
(
:config
,
key
:
:shout
,
value
:
[
enabled
:
false
])
# Note that we don't actually restart Pleroma.
# See module Restarter.Pleroma
assert
capture_log
(
fn
->
TransferTask
.
start_link
([])
# TransferTask.start_link/1 is an asynchronous call.
# A GenServer will first finish the previous call before starting a new one.
# Here we do a synchronous call.
# That way we are sure that the previous call has finished before we continue.
Restarter.Pleroma
.
rebooted?
()
end
)
=~
"pleroma restarted"
end
test
"on reboot time subkey"
do
clear_config
(
Pleroma.Captcha
)
insert
(
:config
,
key
:
Pleroma.Captcha
,
value
:
[
seconds_valid
:
60
])
# Note that we don't actually restart Pleroma.
# See module Restarter.Pleroma
assert
capture_log
(
fn
->
TransferTask
.
start_link
([])
# TransferTask.start_link/1 is an asynchronous call.
# A GenServer will first finish the previous call before starting a new one.
# Here we do a synchronous call.
# That way we are sure that the previous call has finished before we continue.
Restarter.Pleroma
.
rebooted?
()
end
)
=~
"pleroma restarted"
end
test
"don't restart pleroma on reboot time key and subkey if there is false flag"
do
clear_config
(
:shout
)
clear_config
(
Pleroma.Captcha
)
insert
(
:config
,
key
:
:shout
,
value
:
[
enabled
:
false
])
insert
(
:config
,
key
:
Pleroma.Captcha
,
value
:
[
seconds_valid
:
60
])
refute
String
.
contains?
(
capture_log
(
fn
->
TransferTask
.
load_and_update_env
([],
false
)
# TransferTask.start_link/1 is an asynchronous call.
# A GenServer will first finish the previous call before starting a new one.
# Here we do a synchronous call.
# That way we are sure that the previous call has finished before we continue.
Restarter.Pleroma
.
rebooted?
()
end
),
"pleroma restarted"
)
end
end
end
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Nov 15, 2:45 AM (8 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
633101
Default Alt Text
transfer_task_test.exs (5 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment