From 8e271d4f2a29bf1935cc2b3ecfecd0f444b933ba Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 18 Dec 2008 17:53:48 -0800 Subject: [PATCH] MogileFS::Mysql: read-only methods for MogileFS::MogileFS compat These methods help allow MogileFS::Mysql objects to be used as a drop-in replacement for MogileFS::MogileFS in read-only situations. --- lib/mogilefs/mysql.rb | 10 ++++++++++ test/test_mysql.rb | 28 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/lib/mogilefs/mysql.rb b/lib/mogilefs/mysql.rb index 4533db1..c8a35e0 100644 --- a/lib/mogilefs/mysql.rb +++ b/lib/mogilefs/mysql.rb @@ -109,6 +109,16 @@ class MogileFS::Mysql urls end + def readonly=(unused); true; end + def readonly; true; end + def readonly?; true; end + def store_file(key, klass, file); raise MogileFS::ReadOnlyError; end + def store_content(key, klass, content); raise MogileFS::ReadOnlyError; end + def new_file(key, klass, bytes=0, &block); raise MogileFS::ReadOnlyError; end + def rename(from, to); raise MogileFS::ReadOnlyError; end + def delete(key); raise MogileFS::ReadOnlyError; end + def sleep(duration); Kernel.sleep(duration || 10); {}; end + private unless defined? GET_DEVICES diff --git a/test/test_mysql.rb b/test/test_mysql.rb index 2e7cf48..822916f 100644 --- a/test/test_mysql.rb +++ b/test/test_mysql.rb @@ -127,4 +127,32 @@ class TestMogileFS__Mysql < Test::Unit::TestCase assert_equal 456, @mg.size('foo') end + def test_store_file_readonly + assert_raises(MogileFS::ReadOnlyError) do + @mg.store_file 'new_key', 'test', '/dev/null' + end + end + + def test_store_content_readonly + assert_raises(MogileFS::ReadOnlyError) do + @mg.store_content 'new_key', 'test', 'data' + end + end + + def test_new_file_readonly + assert_raises(MogileFS::ReadOnlyError) { @mg.new_file 'new_key', 'test' } + end + + def test_rename_readonly + assert_raises(MogileFS::ReadOnlyError) { @mg.rename 'a', 'b' } + end + + def test_delete_readonly + assert_raises(MogileFS::ReadOnlyError) { @mg.delete 'no_such_key' } + end + + def test_sleep + assert_nothing_raised { assert_equal({}, @mg.sleep(1)) } + end + end -- 2.11.4.GIT