# Lint as: python3

# Copyright 2020 Google LLC.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Tests for common."""

import os
import unittest
import tempfile

from tfrecorder import common
from tfrecorder import constants


class CopyLogTest(unittest.TestCase):
  """Misc tests for _copy_logfile_to_gcs."""

  def test_valid_copy(self):
    """Test valid file copy."""
    with tempfile.TemporaryDirectory() as tmpdirname:
      text = 'log test log test'
      infile = os.path.join(tmpdirname, 'foo.log')
      with open(infile, 'w') as f:
        f.write(text)
      common.copy_logfile_to_gcs(infile, tmpdirname)

      outfile = os.path.join(tmpdirname, constants.LOGFILE)
      with open(outfile, 'r') as f:
        data = f.read()
        self.assertEqual(text, data)

  def test_invalid_copy(self):
    """Test invalid file copy."""
    with tempfile.TemporaryDirectory() as tmpdirname:
      infile = os.path.join(tmpdirname, 'foo.txt')
      with self.assertRaises(FileNotFoundError):
        common.copy_logfile_to_gcs(infile, tmpdirname)

# pylint: disable=protected-access
if __name__ == '__main__':
  unittest.main()
