Use parameter_types instead of thread_local for test-setup (#12036)

* Edit to Assets. parameter_types

* fixes

* Test Fixes. WIP

* Edits to pallet-aura

* Camel Case

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Implementation of mutate fn

* update to pallet-aura

* Update to frame-system. Fixes

* Update to frame-support-test. CamelCases

* Updates to frame- contracts, offences, staking, bounties, child bounties

* Edit to mutate fn. Changes to frame-contracts. CamelCase pallet-aura

* Edits to frame-contracts & executive

* cargo +nightly fmt

* unused import removed

* unused import removed

* cargo +nightly fmt

* minor adjustment

* updates

* updates

* cargo +nightly fmt

* cargo +nightly fmt

* take fn implemented

* update

* update

* Fixes to CallFilter

* cargo +nightly fmt

* final fixes

* Default changed to $value

* Update frame/support/src/lib.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
This commit is contained in:
Boluwatife Bakre
2022-09-08 11:46:25 +01:00
committed by GitHub
parent bec123a50f
commit 3ec4d13e9f
32 changed files with 378 additions and 402 deletions
+5 -6
View File
@@ -30,7 +30,6 @@ use sp_runtime::{
testing::Header,
traits::{BlakeTwo256, IdentityLookup},
};
use std::cell::RefCell;
type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
type Block = frame_system::mocking::MockBlock<Test>;
@@ -96,14 +95,14 @@ impl pallet_balances::Config for Test {
type WeightInfo = ();
}
thread_local! {
pub static MEMBERS: RefCell<Vec<u64>> = RefCell::new(vec![]);
parameter_types! {
pub static MembersTestValue: Vec<u64> = vec![];
}
pub struct TestChangeMembers;
impl ChangeMembers<u64> for TestChangeMembers {
fn change_members_sorted(incoming: &[u64], outgoing: &[u64], new: &[u64]) {
let mut old_plus_incoming = MEMBERS.with(|m| m.borrow().to_vec());
let mut old_plus_incoming = MembersTestValue::get().to_vec();
old_plus_incoming.extend_from_slice(incoming);
old_plus_incoming.sort();
@@ -113,13 +112,13 @@ impl ChangeMembers<u64> for TestChangeMembers {
assert_eq!(old_plus_incoming, new_plus_outgoing);
MEMBERS.with(|m| *m.borrow_mut() = new.to_vec());
MembersTestValue::mutate(|m| *m = new.to_vec());
}
}
impl InitializeMembers<u64> for TestChangeMembers {
fn initialize_members(new_members: &[u64]) {
MEMBERS.with(|m| *m.borrow_mut() = new_members.to_vec());
MembersTestValue::mutate(|m| *m = new_members.to_vec());
}
}
+5 -5
View File
@@ -33,7 +33,7 @@ fn query_membership_works() {
assert_eq!(ScoredPool::members(), vec![20, 40]);
assert_eq!(Balances::reserved_balance(31), CandidateDeposit::get());
assert_eq!(Balances::reserved_balance(40), CandidateDeposit::get());
assert_eq!(MEMBERS.with(|m| m.borrow().clone()), vec![20, 40]);
assert_eq!(MembersTestValue::get().clone(), vec![20, 40]);
});
}
@@ -128,7 +128,7 @@ fn kicking_works() {
// then
assert_eq!(find_in_pool(who), None);
assert_eq!(ScoredPool::members(), vec![20, 31]);
assert_eq!(MEMBERS.with(|m| m.borrow().clone()), ScoredPool::members());
assert_eq!(MembersTestValue::get().clone(), ScoredPool::members());
assert_eq!(Balances::reserved_balance(who), 0); // deposit must have been returned
});
}
@@ -152,7 +152,7 @@ fn unscored_entities_must_not_be_used_for_filling_members() {
// then
// the `None` candidates should not have been filled in
assert!(ScoredPool::members().is_empty());
assert_eq!(MEMBERS.with(|m| m.borrow().clone()), ScoredPool::members());
assert_eq!(MembersTestValue::get().clone(), ScoredPool::members());
});
}
@@ -170,7 +170,7 @@ fn refreshing_works() {
// then
assert_eq!(ScoredPool::members(), vec![15, 40]);
assert_eq!(MEMBERS.with(|m| m.borrow().clone()), ScoredPool::members());
assert_eq!(MembersTestValue::get().clone(), ScoredPool::members());
});
}
@@ -190,7 +190,7 @@ fn refreshing_happens_every_period() {
// then
assert_eq!(ScoredPool::members(), vec![15, 40]);
assert_eq!(MEMBERS.with(|m| m.borrow().clone()), ScoredPool::members());
assert_eq!(MembersTestValue::get().clone(), ScoredPool::members());
});
}