function q($db = null, $sid = null) { if (!$sid) { $sid = md5(microtime(true) + rand()); } if (!Salama::$bootstrapped) { Salama::bootstrap(); } $salama = new Salama(); return $salama; }
protected function setUp() { $settings = array('config_dir' => dirname(__FILE__) . '/../config'); Salama::bootstrap($settings); # 1. create models, database $runner = new SalamaRunner(); $runner->build(); User::raw("CREATE DATABASE IF NOT EXISTS `salamatest`")->goraw(); $runner->syncdb(); # 2. add test data SalamaSuite::$users = array(1 => 'good_bit', 2 => 'evil_bit'); foreach (SalamaSuite::$users as $k => $username) { # transaction support #User::begin(); $user = User::create(); $user->username = $username; $user->login = $k; $user->save(); $u = UserInfo::create(); $u->total = $k; $u->user_id = $user->id; # @TODO when relational, this will be automatically set $u->save(); for ($i = 0; $i < 2; $i++) { $u = UserComment::create(); $u->user_id = $user->id; # @TODO when relational, this will be automatically set $u->comment = "Hello from {$username}!"; $u->pub_date = $i; $u->save(); } $tag = Tag::create(); $tag->name = "Blue"; $tag->save(); $tu = TagUser::create(); $tu->user_id = $user->id; $tu->tag_id = $tag->id; // @TODO $tu->tag = $t; should do the same thing $tu->golden_path = $username . " bets on " . rand(); $tu->save(); $tag2 = Tag::create(); $tag2->name = "Yellow"; $tag2->save(); $tu = TagUser::create(); $tu->user_id = $user->id; $tu->tag_id = $tag2->id; $tu->golden_path = $username . " bets on " . rand(); $tu->save(); #User::commit(); } }
public static function __callStatic($name, $arguments) { if (!Salama::$bootstrapped) { Salama::bootstrap(); } $class = get_called_class(); $model = new $class(); $model = $model->getModelInstance($class); SalamaQuery::add($model, $class, null); if (count($arguments) == 1) { $arguments = $arguments[0]; } # @TODO wrap around SalamaQuerySet return $model->{$name}($arguments); }
protected function setUp() { $settings = array('config_dir' => dirname(__FILE__) . '/../config'); Salama::bootstrap($settings); }