def test_fail(self, cancer, init):
    r = ReadOnlyStorage()
    r._store = MagicMock()
    r._store.status = MagicMock(return_value={
      'channels': 1,
      'messages': 2,
      'cancer': 3,
    })

    expected = {
      'total': {
        'channels': 1,
        'messages': 2,
        'cancer': 3,
      },
      'live': {
        'channels': 0,
        'messages': 0,
        'cancer': 0,
      }
    }

    result = r.status()

    self.assertEqual(result, expected)
  def test_default(self, init):
    r = ReadOnlyStorage()
    r._store = MagicMock()
    r._store.status = MagicMock(return_value={
      'channels': 1,
      'messages': 2,
      'cancer': 3,
    })
    r.cancer = MagicMock(return_value=[
      {
        'messages': 1,
        'cancer': 2
      },
      {
        'messages': 3,
        'cancer': 4
      },
    ])

    expected = {
      'total': {
        'channels': 1,
        'messages': 2,
        'cancer': 3,
      },
      'live': {
        'channels': 2,
        'messages': 4,
        'cancer': 6,
      }
    }

    result = r.status()

    self.assertEqual(result, expected)
    def test_fail(self, cancer, init):
        r = ReadOnlyStorage()
        r._store = MagicMock()
        r._store.status = MagicMock(return_value={
            'channels': 1,
            'messages': 2,
            'cancer': 3,
        })

        expected = {
            'total': {
                'channels': 1,
                'messages': 2,
                'cancer': 3,
            },
            'live': {
                'channels': 0,
                'messages': 0,
                'cancer': 0,
            }
        }

        result = r.status()

        self.assertEqual(result, expected)
    def test_default(self, init):
        r = ReadOnlyStorage()
        r._store = MagicMock()
        r._store.status = MagicMock(return_value={
            'channels': 1,
            'messages': 2,
            'cancer': 3,
        })
        r.cancer = MagicMock(return_value=[
            {
                'messages': 1,
                'cancer': 2
            },
            {
                'messages': 3,
                'cancer': 4
            },
        ])

        expected = {
            'total': {
                'channels': 1,
                'messages': 2,
                'cancer': 3,
            },
            'live': {
                'channels': 2,
                'messages': 4,
                'cancer': 6,
            }
        }

        result = r.status()

        self.assertEqual(result, expected)
示例#5
0
class Storage(StorageInterface):

  def __init__(self):
    super().__init__()

    self.storage = None

  # defaults to ReadOnlyStorage
  def cancer(self):
    if not self.storage:
      from twitchcancer.storage.readonlystorage import ReadOnlyStorage
      self.storage = ReadOnlyStorage()

    return self.storage.cancer()

  # defaults to ReadOnlyStorage
  def leaderboards(self, horizon):
    if not self.storage:
      from twitchcancer.storage.readonlystorage import ReadOnlyStorage
      self.storage = ReadOnlyStorage()

    return self.storage.leaderboards(horizon)

  # defaults to ReadOnlyStorage
  def leaderboard(self, name):
    if not self.storage:
      from twitchcancer.storage.readonlystorage import ReadOnlyStorage
      self.storage = ReadOnlyStorage()

    return self.storage.leaderboard(name)

  # defaults to ReadOnlyStorage
  def channel(self, channel):
    if not self.storage:
      from twitchcancer.storage.readonlystorage import ReadOnlyStorage
      self.storage = ReadOnlyStorage()

    return self.storage.channel(channel)

  # defaults to ReadOnlyStorage
  def status(self):
    if not self.storage:
      from twitchcancer.storage.readonlystorage import ReadOnlyStorage
      self.storage = ReadOnlyStorage()

    return self.storage.status()

  # defaults to MemoryStorage
  def store(self, channel, cancer):
    # messages are stored in-memory only
    if not self.storage:
      from twitchcancer.storage.memorystorage import MemoryStorage
      self.storage = MemoryStorage()

    self.storage.store(channel, cancer)

  # defaults to WriteOnlyStorage
  def record(self):
    # summaries are written to the database
    if not self.storage:
      from twitchcancer.storage.writeonlystorage import WriteOnlyStorage
      self.storage = WriteOnlyStorage()

    self.storage.record()

  # defaults to ReadOnlyStorage
  def search(self, channel):
    if not self.storage:
      from twitchcancer.storage.readonlystorage import ReadOnlyStorage
      self.storage = ReadOnlyStorage()

    return self.storage.search(channel)
示例#6
0
class Storage(StorageInterface):

    def __init__(self):
        super().__init__()

        self.storage = None

    # defaults to ReadOnlyStorage
    def cancer(self):
        if not self.storage:
            from twitchcancer.storage.readonlystorage import ReadOnlyStorage
            self.storage = ReadOnlyStorage()

        return self.storage.cancer()

    # defaults to ReadOnlyStorage
    def leaderboards(self, horizon):
        if not self.storage:
            from twitchcancer.storage.readonlystorage import ReadOnlyStorage
            self.storage = ReadOnlyStorage()

        return self.storage.leaderboards(horizon)

    # defaults to ReadOnlyStorage
    def leaderboard(self, name):
        if not self.storage:
            from twitchcancer.storage.readonlystorage import ReadOnlyStorage
            self.storage = ReadOnlyStorage()

        return self.storage.leaderboard(name)

    # defaults to ReadOnlyStorage
    def channel(self, channel):
        if not self.storage:
            from twitchcancer.storage.readonlystorage import ReadOnlyStorage
            self.storage = ReadOnlyStorage()

        return self.storage.channel(channel)

    # defaults to ReadOnlyStorage
    def status(self):
        if not self.storage:
            from twitchcancer.storage.readonlystorage import ReadOnlyStorage
            self.storage = ReadOnlyStorage()

        return self.storage.status()

    # defaults to MemoryStorage
    def store(self, channel, cancer):
        # messages are stored in-memory only
        if not self.storage:
            from twitchcancer.storage.memorystorage import MemoryStorage
            self.storage = MemoryStorage()

        self.storage.store(channel, cancer)

    # defaults to WriteOnlyStorage
    def record(self):
        # summaries are written to the database
        if not self.storage:
            from twitchcancer.storage.writeonlystorage import WriteOnlyStorage
            self.storage = WriteOnlyStorage()

        self.storage.record()

    # defaults to ReadOnlyStorage
    def search(self, channel):
        if not self.storage:
            from twitchcancer.storage.readonlystorage import ReadOnlyStorage
            self.storage = ReadOnlyStorage()

        return self.storage.search(channel)