#[throws(Explode)]
pub fn main() {
- let (opts, _instance, su) = setup_core(
- &[module_path!()],
- )?;
- let spec = su.ds.game_spec_data()?;
- let mut mc = su.mgmt_conn();
- let [alice, bob]: [Player; 2] =
- su.ds.setup_static_users(&mut mc, default())?
- .into_iter().map(|sus| Player { nick: sus.nick, url: sus.url })
- .collect::<ArrayVec<_>>().into_inner().unwrap();
- drop(mc);
-
- let su_rc = Rc::new(RefCell::new(su));
- tests(Ctx { opts, spec, su_rc, alice, bob, prctx: default() })?;
+ tests(UsualCtx::setup()?)?;
}
}
}
+impl UsualCtx {
+ #[throws(AE)]
+ pub fn setup() -> Self {
+ let (opts, _instance, su) = setup_core(
+ &[module_path!()],
+ )?;
+ let spec = su.ds.game_spec_data()?;
+ let mut mc = su.mgmt_conn();
+ let [alice, bob]: [Player; 2] =
+ su.ds.setup_static_users(&mut mc, default())?
+ .into_iter().map(|sus| Player { nick: sus.nick, url: sus.url })
+ .collect::<ArrayVec<_>>().into_inner().unwrap();
+ drop(mc);
+
+ let su_rc = Rc::new(RefCell::new(su));
+ UsualCtx { opts, spec, su_rc, alice, bob, prctx: default() }
+ }
+}
+
portmanteau_has!("at-otter.rs", at_otter);
portmanteau_has!("at-bundles.rs", at_bundles);