mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-14 13:21:10 +00:00
Migrate more pallet tests to construct_runtime (#8051)
* Migrate bounties tests to use construct_runtime * Migrate contracts tests to use construct_runtime * Migrate democracy tests to use construct_runtime * review: rename TreasuryEvent -> TreasuryError
This commit is contained in:
@@ -19,12 +19,12 @@
|
|||||||
|
|
||||||
#![cfg(test)]
|
#![cfg(test)]
|
||||||
|
|
||||||
|
use crate as pallet_bounties;
|
||||||
use super::*;
|
use super::*;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
assert_noop, assert_ok, impl_outer_origin, parameter_types, weights::Weight,
|
assert_noop, assert_ok, parameter_types, weights::Weight, traits::OnInitialize
|
||||||
impl_outer_event, traits::{OnInitialize}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use sp_core::H256;
|
use sp_core::H256;
|
||||||
@@ -34,32 +34,29 @@ use sp_runtime::{
|
|||||||
traits::{BlakeTwo256, IdentityLookup, BadOrigin},
|
traits::{BlakeTwo256, IdentityLookup, BadOrigin},
|
||||||
};
|
};
|
||||||
|
|
||||||
impl_outer_origin! {
|
type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
|
||||||
pub enum Origin for Test where system = frame_system {}
|
type Block = frame_system::mocking::MockBlock<Test>;
|
||||||
}
|
|
||||||
|
|
||||||
mod bounties {
|
frame_support::construct_runtime!(
|
||||||
// Re-export needed for `impl_outer_event!`.
|
pub enum Test where
|
||||||
pub use crate::*;
|
Block = Block,
|
||||||
}
|
NodeBlock = Block,
|
||||||
|
UncheckedExtrinsic = UncheckedExtrinsic,
|
||||||
impl_outer_event! {
|
{
|
||||||
pub enum Event for Test {
|
System: frame_system::{Module, Call, Config, Storage, Event<T>},
|
||||||
system<T>,
|
Balances: pallet_balances::{Module, Call, Storage, Config<T>, Event<T>},
|
||||||
pallet_balances<T>,
|
Bounties: pallet_bounties::{Module, Call, Storage, Event<T>},
|
||||||
pallet_treasury<T>,
|
Treasury: pallet_treasury::{Module, Call, Storage, Config, Event<T>},
|
||||||
bounties<T>,
|
|
||||||
}
|
}
|
||||||
}
|
);
|
||||||
|
|
||||||
#[derive(Clone, Eq, PartialEq)]
|
|
||||||
pub struct Test;
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
pub const BlockHashCount: u64 = 250;
|
pub const BlockHashCount: u64 = 250;
|
||||||
pub const MaximumBlockWeight: Weight = 1024;
|
pub const MaximumBlockWeight: Weight = 1024;
|
||||||
pub const MaximumBlockLength: u32 = 2 * 1024;
|
pub const MaximumBlockLength: u32 = 2 * 1024;
|
||||||
pub const AvailableBlockRatio: Perbill = Perbill::one();
|
pub const AvailableBlockRatio: Perbill = Perbill::one();
|
||||||
}
|
}
|
||||||
|
|
||||||
impl frame_system::Config for Test {
|
impl frame_system::Config for Test {
|
||||||
type BaseCallFilter = ();
|
type BaseCallFilter = ();
|
||||||
type BlockWeights = ();
|
type BlockWeights = ();
|
||||||
@@ -68,7 +65,7 @@ impl frame_system::Config for Test {
|
|||||||
type Origin = Origin;
|
type Origin = Origin;
|
||||||
type Index = u64;
|
type Index = u64;
|
||||||
type BlockNumber = u64;
|
type BlockNumber = u64;
|
||||||
type Call = ();
|
type Call = Call;
|
||||||
type Hash = H256;
|
type Hash = H256;
|
||||||
type Hashing = BlakeTwo256;
|
type Hashing = BlakeTwo256;
|
||||||
type AccountId = u128; // u64 is not enough to hold bytes used to generate bounty account
|
type AccountId = u128; // u64 is not enough to hold bytes used to generate bounty account
|
||||||
@@ -77,7 +74,7 @@ impl frame_system::Config for Test {
|
|||||||
type Event = Event;
|
type Event = Event;
|
||||||
type BlockHashCount = BlockHashCount;
|
type BlockHashCount = BlockHashCount;
|
||||||
type Version = ();
|
type Version = ();
|
||||||
type PalletInfo = ();
|
type PalletInfo = PalletInfo;
|
||||||
type AccountData = pallet_balances::AccountData<u64>;
|
type AccountData = pallet_balances::AccountData<u64>;
|
||||||
type OnNewAccount = ();
|
type OnNewAccount = ();
|
||||||
type OnKilledAccount = ();
|
type OnKilledAccount = ();
|
||||||
@@ -142,10 +139,8 @@ impl Config for Test {
|
|||||||
type MaximumReasonLength = MaximumReasonLength;
|
type MaximumReasonLength = MaximumReasonLength;
|
||||||
type WeightInfo = ();
|
type WeightInfo = ();
|
||||||
}
|
}
|
||||||
type System = frame_system::Module<Test>;
|
|
||||||
type Balances = pallet_balances::Module<Test>;
|
type TreasuryError = pallet_treasury::Error::<Test, pallet_treasury::DefaultInstance>;
|
||||||
type Treasury = pallet_treasury::Module<Test>;
|
|
||||||
type Bounties = Module<Test>;
|
|
||||||
|
|
||||||
pub fn new_test_ext() -> sp_io::TestExternalities {
|
pub fn new_test_ext() -> sp_io::TestExternalities {
|
||||||
let mut t = frame_system::GenesisConfig::default().build_storage::<Test>().unwrap();
|
let mut t = frame_system::GenesisConfig::default().build_storage::<Test>().unwrap();
|
||||||
@@ -160,7 +155,7 @@ pub fn new_test_ext() -> sp_io::TestExternalities {
|
|||||||
fn last_event() -> RawEvent<u64, u128> {
|
fn last_event() -> RawEvent<u64, u128> {
|
||||||
System::events().into_iter().map(|r| r.event)
|
System::events().into_iter().map(|r| r.event)
|
||||||
.filter_map(|e| {
|
.filter_map(|e| {
|
||||||
if let Event::bounties(inner) = e { Some(inner) } else { None }
|
if let Event::pallet_bounties(inner) = e { Some(inner) } else { None }
|
||||||
})
|
})
|
||||||
.last()
|
.last()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
@@ -206,7 +201,7 @@ fn spend_proposal_fails_when_proposer_poor() {
|
|||||||
new_test_ext().execute_with(|| {
|
new_test_ext().execute_with(|| {
|
||||||
assert_noop!(
|
assert_noop!(
|
||||||
Treasury::propose_spend(Origin::signed(2), 100, 3),
|
Treasury::propose_spend(Origin::signed(2), 100, 3),
|
||||||
Error::<Test>::InsufficientProposersBalance,
|
TreasuryError::InsufficientProposersBalance,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -259,21 +254,22 @@ fn reject_already_rejected_spend_proposal_fails() {
|
|||||||
|
|
||||||
assert_ok!(Treasury::propose_spend(Origin::signed(0), 100, 3));
|
assert_ok!(Treasury::propose_spend(Origin::signed(0), 100, 3));
|
||||||
assert_ok!(Treasury::reject_proposal(Origin::root(), 0));
|
assert_ok!(Treasury::reject_proposal(Origin::root(), 0));
|
||||||
assert_noop!(Treasury::reject_proposal(Origin::root(), 0), Error::<Test>::InvalidIndex);
|
assert_noop!(Treasury::reject_proposal(Origin::root(), 0), TreasuryError::InvalidIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn reject_non_existent_spend_proposal_fails() {
|
fn reject_non_existent_spend_proposal_fails() {
|
||||||
new_test_ext().execute_with(|| {
|
new_test_ext().execute_with(|| {
|
||||||
assert_noop!(Treasury::reject_proposal(Origin::root(), 0), Error::<Test>::InvalidIndex);
|
assert_noop!(Treasury::reject_proposal(Origin::root(), 0),
|
||||||
|
pallet_treasury::Error::<Test, pallet_treasury::DefaultInstance>::InvalidIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn accept_non_existent_spend_proposal_fails() {
|
fn accept_non_existent_spend_proposal_fails() {
|
||||||
new_test_ext().execute_with(|| {
|
new_test_ext().execute_with(|| {
|
||||||
assert_noop!(Treasury::approve_proposal(Origin::root(), 0), Error::<Test>::InvalidIndex);
|
assert_noop!(Treasury::approve_proposal(Origin::root(), 0), TreasuryError::InvalidIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -284,7 +280,7 @@ fn accept_already_rejected_spend_proposal_fails() {
|
|||||||
|
|
||||||
assert_ok!(Treasury::propose_spend(Origin::signed(0), 100, 3));
|
assert_ok!(Treasury::propose_spend(Origin::signed(0), 100, 3));
|
||||||
assert_ok!(Treasury::reject_proposal(Origin::root(), 0));
|
assert_ok!(Treasury::reject_proposal(Origin::root(), 0));
|
||||||
assert_noop!(Treasury::approve_proposal(Origin::root(), 0), Error::<Test>::InvalidIndex);
|
assert_noop!(Treasury::approve_proposal(Origin::root(), 0), TreasuryError::InvalidIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -772,7 +772,7 @@ fn deposit_event<T: Config>(
|
|||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
gas::GasMeter, tests::{ExtBuilder, Test, MetaEvent},
|
gas::GasMeter, tests::{ExtBuilder, Test, Event as MetaEvent},
|
||||||
gas::Gas,
|
gas::Gas,
|
||||||
storage::Storage,
|
storage::Storage,
|
||||||
tests::{
|
tests::{
|
||||||
@@ -797,7 +797,7 @@ mod tests {
|
|||||||
<frame_system::Module<Test>>::events()
|
<frame_system::Module<Test>>::events()
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter_map(|meta| match meta.event {
|
.filter_map(|meta| match meta.event {
|
||||||
MetaEvent::contracts(contract_event) => Some(contract_event),
|
MetaEvent::pallet_contracts(contract_event) => Some(contract_event),
|
||||||
_ => None,
|
_ => None,
|
||||||
})
|
})
|
||||||
.collect()
|
.collect()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
BalanceOf, ContractInfo, ContractInfoOf, GenesisConfig, Module,
|
BalanceOf, ContractInfo, ContractInfoOf, Module,
|
||||||
RawAliveContractInfo, RawEvent, Config, Schedule, gas::Gas,
|
RawAliveContractInfo, RawEvent, Config, Schedule, gas::Gas,
|
||||||
Error, ConfigCache, RuntimeReturnCode, storage::Storage,
|
Error, ConfigCache, RuntimeReturnCode, storage::Storage,
|
||||||
chain_extension::{
|
chain_extension::{
|
||||||
@@ -34,8 +34,8 @@ use sp_runtime::{
|
|||||||
};
|
};
|
||||||
use sp_io::hashing::blake2_256;
|
use sp_io::hashing::blake2_256;
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
assert_ok, assert_err, assert_err_ignore_postinfo, impl_outer_dispatch, impl_outer_event,
|
assert_ok, assert_err, assert_err_ignore_postinfo,
|
||||||
impl_outer_origin, parameter_types, StorageMap, assert_storage_noop,
|
parameter_types, StorageMap, assert_storage_noop,
|
||||||
traits::{Currency, ReservableCurrency, OnInitialize},
|
traits::{Currency, ReservableCurrency, OnInitialize},
|
||||||
weights::{Weight, PostDispatchInfo, DispatchClass, constants::WEIGHT_PER_SECOND},
|
weights::{Weight, PostDispatchInfo, DispatchClass, constants::WEIGHT_PER_SECOND},
|
||||||
dispatch::DispatchErrorWithPostInfo,
|
dispatch::DispatchErrorWithPostInfo,
|
||||||
@@ -44,32 +44,24 @@ use frame_support::{
|
|||||||
use frame_system::{self as system, EventRecord, Phase};
|
use frame_system::{self as system, EventRecord, Phase};
|
||||||
use pretty_assertions::assert_eq;
|
use pretty_assertions::assert_eq;
|
||||||
|
|
||||||
mod contracts {
|
use crate as pallet_contracts;
|
||||||
// Re-export contents of the root. This basically
|
|
||||||
// needs to give a name for the current crate.
|
|
||||||
// This hack is required for `impl_outer_event!`.
|
|
||||||
pub use super::super::*;
|
|
||||||
pub use frame_support::impl_outer_event;
|
|
||||||
}
|
|
||||||
|
|
||||||
use pallet_balances as balances;
|
type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
|
||||||
|
type Block = frame_system::mocking::MockBlock<Test>;
|
||||||
|
|
||||||
impl_outer_event! {
|
frame_support::construct_runtime!(
|
||||||
pub enum MetaEvent for Test {
|
pub enum Test where
|
||||||
system<T>,
|
Block = Block,
|
||||||
balances<T>,
|
NodeBlock = Block,
|
||||||
contracts<T>,
|
UncheckedExtrinsic = UncheckedExtrinsic,
|
||||||
|
{
|
||||||
|
System: frame_system::{Module, Call, Config, Storage, Event<T>},
|
||||||
|
Balances: pallet_balances::{Module, Call, Storage, Config<T>, Event<T>},
|
||||||
|
Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent},
|
||||||
|
Randomness: pallet_randomness_collective_flip::{Module, Call, Storage},
|
||||||
|
Contracts: pallet_contracts::{Module, Call, Config<T>, Storage, Event<T>},
|
||||||
}
|
}
|
||||||
}
|
);
|
||||||
impl_outer_origin! {
|
|
||||||
pub enum Origin for Test where system = frame_system { }
|
|
||||||
}
|
|
||||||
impl_outer_dispatch! {
|
|
||||||
pub enum Call for Test where origin: Origin {
|
|
||||||
balances::Balances,
|
|
||||||
contracts::Contracts,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
pub mod test_utils {
|
pub mod test_utils {
|
||||||
@@ -198,8 +190,6 @@ impl ChainExtension<Test> for TestExtension {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Eq, PartialEq, Debug)]
|
|
||||||
pub struct Test;
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
pub const BlockHashCount: u64 = 250;
|
pub const BlockHashCount: u64 = 250;
|
||||||
pub BlockWeights: frame_system::limits::BlockWeights =
|
pub BlockWeights: frame_system::limits::BlockWeights =
|
||||||
@@ -220,10 +210,10 @@ impl frame_system::Config for Test {
|
|||||||
type AccountId = AccountId32;
|
type AccountId = AccountId32;
|
||||||
type Lookup = IdentityLookup<Self::AccountId>;
|
type Lookup = IdentityLookup<Self::AccountId>;
|
||||||
type Header = Header;
|
type Header = Header;
|
||||||
type Event = MetaEvent;
|
type Event = Event;
|
||||||
type BlockHashCount = BlockHashCount;
|
type BlockHashCount = BlockHashCount;
|
||||||
type Version = ();
|
type Version = ();
|
||||||
type PalletInfo = ();
|
type PalletInfo = PalletInfo;
|
||||||
type AccountData = pallet_balances::AccountData<u64>;
|
type AccountData = pallet_balances::AccountData<u64>;
|
||||||
type OnNewAccount = ();
|
type OnNewAccount = ();
|
||||||
type OnKilledAccount = ();
|
type OnKilledAccount = ();
|
||||||
@@ -233,7 +223,7 @@ impl frame_system::Config for Test {
|
|||||||
impl pallet_balances::Config for Test {
|
impl pallet_balances::Config for Test {
|
||||||
type MaxLocks = ();
|
type MaxLocks = ();
|
||||||
type Balance = u64;
|
type Balance = u64;
|
||||||
type Event = MetaEvent;
|
type Event = Event;
|
||||||
type DustRemoval = ();
|
type DustRemoval = ();
|
||||||
type ExistentialDeposit = ExistentialDeposit;
|
type ExistentialDeposit = ExistentialDeposit;
|
||||||
type AccountStore = System;
|
type AccountStore = System;
|
||||||
@@ -276,7 +266,7 @@ impl Config for Test {
|
|||||||
type Time = Timestamp;
|
type Time = Timestamp;
|
||||||
type Randomness = Randomness;
|
type Randomness = Randomness;
|
||||||
type Currency = Balances;
|
type Currency = Balances;
|
||||||
type Event = MetaEvent;
|
type Event = Event;
|
||||||
type RentPayment = ();
|
type RentPayment = ();
|
||||||
type SignedClaimHandicap = SignedClaimHandicap;
|
type SignedClaimHandicap = SignedClaimHandicap;
|
||||||
type TombstoneDeposit = TombstoneDeposit;
|
type TombstoneDeposit = TombstoneDeposit;
|
||||||
@@ -294,12 +284,6 @@ impl Config for Test {
|
|||||||
type DeletionWeightLimit = DeletionWeightLimit;
|
type DeletionWeightLimit = DeletionWeightLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
type Balances = pallet_balances::Module<Test>;
|
|
||||||
type Timestamp = pallet_timestamp::Module<Test>;
|
|
||||||
type Contracts = Module<Test>;
|
|
||||||
type System = frame_system::Module<Test>;
|
|
||||||
type Randomness = pallet_randomness_collective_flip::Module<Test>;
|
|
||||||
|
|
||||||
pub const ALICE: AccountId32 = AccountId32::new([1u8; 32]);
|
pub const ALICE: AccountId32 = AccountId32::new([1u8; 32]);
|
||||||
pub const BOB: AccountId32 = AccountId32::new([2u8; 32]);
|
pub const BOB: AccountId32 = AccountId32::new([2u8; 32]);
|
||||||
pub const CHARLIE: AccountId32 = AccountId32::new([3u8; 32]);
|
pub const CHARLIE: AccountId32 = AccountId32::new([3u8; 32]);
|
||||||
@@ -331,7 +315,7 @@ impl ExtBuilder {
|
|||||||
pallet_balances::GenesisConfig::<Test> {
|
pallet_balances::GenesisConfig::<Test> {
|
||||||
balances: vec![],
|
balances: vec![],
|
||||||
}.assimilate_storage(&mut t).unwrap();
|
}.assimilate_storage(&mut t).unwrap();
|
||||||
GenesisConfig {
|
pallet_contracts::GenesisConfig {
|
||||||
current_schedule: Schedule::<Test> {
|
current_schedule: Schedule::<Test> {
|
||||||
enable_println: true,
|
enable_println: true,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
@@ -483,50 +467,50 @@ fn instantiate_and_call_and_deposit_event() {
|
|||||||
assert_eq!(System::events(), vec![
|
assert_eq!(System::events(), vec![
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(frame_system::Event::NewAccount(ALICE.clone())),
|
event: Event::frame_system(frame_system::Event::NewAccount(ALICE.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Endowed(ALICE, 1_000_000)
|
pallet_balances::RawEvent::Endowed(ALICE, 1_000_000)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(frame_system::Event::NewAccount(addr.clone())),
|
event: Event::frame_system(frame_system::Event::NewAccount(addr.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Endowed(addr.clone(), subsistence * 100)
|
pallet_balances::RawEvent::Endowed(addr.clone(), subsistence * 100)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Transfer(ALICE, addr.clone(), subsistence * 100)
|
pallet_balances::RawEvent::Transfer(ALICE, addr.clone(), subsistence * 100)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::CodeStored(code_hash.into())),
|
event: Event::pallet_contracts(RawEvent::CodeStored(code_hash.into())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(
|
event: Event::pallet_contracts(
|
||||||
RawEvent::ContractEmitted(addr.clone(), vec![1, 2, 3, 4])
|
RawEvent::ContractEmitted(addr.clone(), vec![1, 2, 3, 4])
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::Instantiated(ALICE, addr.clone())),
|
event: Event::pallet_contracts(RawEvent::Instantiated(ALICE, addr.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
@@ -1212,43 +1196,43 @@ fn restoration(
|
|||||||
let mut events = vec![
|
let mut events = vec![
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(frame_system::Event::NewAccount(ALICE)),
|
event: Event::frame_system(frame_system::Event::NewAccount(ALICE)),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Endowed(ALICE, 1_000_000)
|
pallet_balances::RawEvent::Endowed(ALICE, 1_000_000)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(frame_system::Event::NewAccount(addr_bob.clone())),
|
event: Event::frame_system(frame_system::Event::NewAccount(addr_bob.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Endowed(addr_bob.clone(), 30_000)
|
pallet_balances::RawEvent::Endowed(addr_bob.clone(), 30_000)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Transfer(ALICE, addr_bob.clone(), 30_000)
|
pallet_balances::RawEvent::Transfer(ALICE, addr_bob.clone(), 30_000)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::CodeStored(set_rent_code_hash.into())),
|
event: Event::pallet_contracts(RawEvent::CodeStored(set_rent_code_hash.into())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::Instantiated(ALICE, addr_bob.clone())),
|
event: Event::pallet_contracts(RawEvent::Instantiated(ALICE, addr_bob.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
@@ -1269,26 +1253,26 @@ fn restoration(
|
|||||||
events.extend([
|
events.extend([
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(frame_system::Event::NewAccount(addr_dummy.clone())),
|
event: Event::frame_system(frame_system::Event::NewAccount(addr_dummy.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Endowed(addr_dummy.clone(), 20_000)
|
pallet_balances::RawEvent::Endowed(addr_dummy.clone(), 20_000)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Transfer(ALICE, addr_dummy.clone(), 20_000)
|
pallet_balances::RawEvent::Transfer(ALICE, addr_dummy.clone(), 20_000)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::Instantiated(ALICE, addr_dummy.clone())),
|
event: Event::pallet_contracts(RawEvent::Instantiated(ALICE, addr_dummy.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
].iter().cloned());
|
].iter().cloned());
|
||||||
@@ -1414,44 +1398,44 @@ fn restoration(
|
|||||||
assert_eq!(System::events(), vec![
|
assert_eq!(System::events(), vec![
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::Evicted(addr_bob)),
|
event: Event::pallet_contracts(RawEvent::Evicted(addr_bob)),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(frame_system::Event::NewAccount(CHARLIE)),
|
event: Event::frame_system(frame_system::Event::NewAccount(CHARLIE)),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(pallet_balances::RawEvent::Endowed(CHARLIE, 1_000_000)),
|
event: Event::pallet_balances(pallet_balances::RawEvent::Endowed(CHARLIE, 1_000_000)),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(frame_system::Event::NewAccount(addr_django.clone())),
|
event: Event::frame_system(frame_system::Event::NewAccount(addr_django.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(pallet_balances::RawEvent::Endowed(addr_django.clone(), 30_000)),
|
event: Event::pallet_balances(pallet_balances::RawEvent::Endowed(addr_django.clone(), 30_000)),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Transfer(CHARLIE, addr_django.clone(), 30_000)
|
pallet_balances::RawEvent::Transfer(CHARLIE, addr_django.clone(), 30_000)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::CodeStored(restoration_code_hash)),
|
event: Event::pallet_contracts(RawEvent::CodeStored(restoration_code_hash)),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::Instantiated(CHARLIE, addr_django.clone())),
|
event: Event::pallet_contracts(RawEvent::Instantiated(CHARLIE, addr_django.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -1483,17 +1467,17 @@ fn restoration(
|
|||||||
assert_eq!(System::events(), vec![
|
assert_eq!(System::events(), vec![
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::CodeRemoved(restoration_code_hash)),
|
event: Event::pallet_contracts(RawEvent::CodeRemoved(restoration_code_hash)),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(system::Event::KilledAccount(addr_django.clone())),
|
event: Event::frame_system(system::Event::KilledAccount(addr_django.clone())),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(
|
event: Event::pallet_contracts(
|
||||||
RawEvent::Restored(addr_django, addr_bob, bob_contract.code_hash, 50)
|
RawEvent::Restored(addr_django, addr_bob, bob_contract.code_hash, 50)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
@@ -1719,26 +1703,26 @@ fn self_destruct_works() {
|
|||||||
pretty_assertions::assert_eq!(System::events(), vec![
|
pretty_assertions::assert_eq!(System::events(), vec![
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::system(
|
event: Event::frame_system(
|
||||||
frame_system::Event::KilledAccount(addr.clone())
|
frame_system::Event::KilledAccount(addr.clone())
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::balances(
|
event: Event::pallet_balances(
|
||||||
pallet_balances::RawEvent::Transfer(addr.clone(), DJANGO, 93_654)
|
pallet_balances::RawEvent::Transfer(addr.clone(), DJANGO, 93_654)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(RawEvent::CodeRemoved(code_hash)),
|
event: Event::pallet_contracts(RawEvent::CodeRemoved(code_hash)),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
},
|
},
|
||||||
EventRecord {
|
EventRecord {
|
||||||
phase: Phase::Initialization,
|
phase: Phase::Initialization,
|
||||||
event: MetaEvent::contracts(
|
event: Event::pallet_contracts(
|
||||||
RawEvent::Terminated(addr.clone(), DJANGO)
|
RawEvent::Terminated(addr.clone(), DJANGO)
|
||||||
),
|
),
|
||||||
topics: vec![],
|
topics: vec![],
|
||||||
|
|||||||
@@ -17,11 +17,12 @@
|
|||||||
|
|
||||||
//! The crate's tests.
|
//! The crate's tests.
|
||||||
|
|
||||||
|
use crate as pallet_democracy;
|
||||||
use super::*;
|
use super::*;
|
||||||
use codec::Encode;
|
use codec::Encode;
|
||||||
use frame_support::{
|
use frame_support::{
|
||||||
impl_outer_origin, impl_outer_dispatch, assert_noop, assert_ok, parameter_types,
|
assert_noop, assert_ok, parameter_types, ord_parameter_types,
|
||||||
impl_outer_event, ord_parameter_types, traits::{Contains, OnInitialize, Filter},
|
traits::{Contains, OnInitialize, Filter},
|
||||||
weights::Weight,
|
weights::Weight,
|
||||||
};
|
};
|
||||||
use sp_core::H256;
|
use sp_core::H256;
|
||||||
@@ -50,30 +51,21 @@ const BIG_NAY: Vote = Vote { aye: false, conviction: Conviction::Locked1x };
|
|||||||
|
|
||||||
const MAX_PROPOSALS: u32 = 100;
|
const MAX_PROPOSALS: u32 = 100;
|
||||||
|
|
||||||
impl_outer_origin! {
|
type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic<Test>;
|
||||||
pub enum Origin for Test where system = frame_system {}
|
type Block = frame_system::mocking::MockBlock<Test>;
|
||||||
}
|
|
||||||
|
|
||||||
impl_outer_dispatch! {
|
frame_support::construct_runtime!(
|
||||||
pub enum Call for Test where origin: Origin {
|
pub enum Test where
|
||||||
frame_system::System,
|
Block = Block,
|
||||||
pallet_balances::Balances,
|
NodeBlock = Block,
|
||||||
democracy::Democracy,
|
UncheckedExtrinsic = UncheckedExtrinsic,
|
||||||
|
{
|
||||||
|
System: frame_system::{Module, Call, Config, Storage, Event<T>},
|
||||||
|
Balances: pallet_balances::{Module, Call, Storage, Config<T>, Event<T>},
|
||||||
|
Scheduler: pallet_scheduler::{Module, Call, Storage, Config, Event<T>},
|
||||||
|
Democracy: pallet_democracy::{Module, Call, Storage, Config, Event<T>},
|
||||||
}
|
}
|
||||||
}
|
);
|
||||||
|
|
||||||
mod democracy {
|
|
||||||
pub use crate::Event;
|
|
||||||
}
|
|
||||||
|
|
||||||
impl_outer_event! {
|
|
||||||
pub enum Event for Test {
|
|
||||||
system<T>,
|
|
||||||
pallet_balances<T>,
|
|
||||||
pallet_scheduler<T>,
|
|
||||||
democracy<T>,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test that a fitlered call can be dispatched.
|
// Test that a fitlered call can be dispatched.
|
||||||
pub struct BaseFilter;
|
pub struct BaseFilter;
|
||||||
@@ -83,9 +75,6 @@ impl Filter<Call> for BaseFilter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted.
|
|
||||||
#[derive(Clone, Eq, PartialEq, Debug)]
|
|
||||||
pub struct Test;
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
pub const BlockHashCount: u64 = 250;
|
pub const BlockHashCount: u64 = 250;
|
||||||
pub BlockWeights: frame_system::limits::BlockWeights =
|
pub BlockWeights: frame_system::limits::BlockWeights =
|
||||||
@@ -108,7 +97,7 @@ impl frame_system::Config for Test {
|
|||||||
type Event = Event;
|
type Event = Event;
|
||||||
type BlockHashCount = BlockHashCount;
|
type BlockHashCount = BlockHashCount;
|
||||||
type Version = ();
|
type Version = ();
|
||||||
type PalletInfo = ();
|
type PalletInfo = PalletInfo;
|
||||||
type AccountData = pallet_balances::AccountData<u64>;
|
type AccountData = pallet_balances::AccountData<u64>;
|
||||||
type OnNewAccount = ();
|
type OnNewAccount = ();
|
||||||
type OnKilledAccount = ();
|
type OnKilledAccount = ();
|
||||||
@@ -169,7 +158,7 @@ impl Contains<u64> for OneToFive {
|
|||||||
fn add(_m: &u64) {}
|
fn add(_m: &u64) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl super::Config for Test {
|
impl Config for Test {
|
||||||
type Proposal = Call;
|
type Proposal = Call;
|
||||||
type Event = Event;
|
type Event = Event;
|
||||||
type Currency = pallet_balances::Module<Self>;
|
type Currency = pallet_balances::Module<Self>;
|
||||||
@@ -204,7 +193,7 @@ pub fn new_test_ext() -> sp_io::TestExternalities {
|
|||||||
pallet_balances::GenesisConfig::<Test>{
|
pallet_balances::GenesisConfig::<Test>{
|
||||||
balances: vec![(1, 10), (2, 20), (3, 30), (4, 40), (5, 50), (6, 60)],
|
balances: vec![(1, 10), (2, 20), (3, 30), (4, 40), (5, 50), (6, 60)],
|
||||||
}.assimilate_storage(&mut t).unwrap();
|
}.assimilate_storage(&mut t).unwrap();
|
||||||
GenesisConfig::default().assimilate_storage(&mut t).unwrap();
|
pallet_democracy::GenesisConfig::default().assimilate_storage(&mut t).unwrap();
|
||||||
let mut ext = sp_io::TestExternalities::new(t);
|
let mut ext = sp_io::TestExternalities::new(t);
|
||||||
ext.execute_with(|| System::set_block_number(1));
|
ext.execute_with(|| System::set_block_number(1));
|
||||||
ext
|
ext
|
||||||
@@ -216,11 +205,6 @@ pub fn new_test_ext_execute_with_cond(execute: impl FnOnce(bool) -> () + Clone)
|
|||||||
new_test_ext().execute_with(|| execute(true));
|
new_test_ext().execute_with(|| execute(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
type System = frame_system::Module<Test>;
|
|
||||||
type Balances = pallet_balances::Module<Test>;
|
|
||||||
type Scheduler = pallet_scheduler::Module<Test>;
|
|
||||||
type Democracy = Module<Test>;
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn params_should_work() {
|
fn params_should_work() {
|
||||||
new_test_ext().execute_with(|| {
|
new_test_ext().execute_with(|| {
|
||||||
|
|||||||
Reference in New Issue
Block a user