# Path: dftimewolf/lib/containers/containers.py
# class FSPath(interface.AttributeContainer):
# class RemoteFSPath(FSPath):
# class Report(interface.AttributeContainer):
# class GCPLogs(interface.AttributeContainer):
# class AWSLogs(interface.AttributeContainer):
# class AzureLogs(interface.AttributeContainer):
# class ThreatIntelligence(interface.AttributeContainer):
# class YaraRule(interface.AttributeContainer):
# class TicketAttribute(interface.AttributeContainer):
# class File(interface.AttributeContainer):
# class Directory(interface.AttributeContainer):
# class ForensicsVM(interface.AttributeContainer):
# class URL(interface.AttributeContainer):
# class GCEDisk(interface.AttributeContainer):
# class GCEDiskEvidence(interface.AttributeContainer):
# class GCEImage(interface.AttributeContainer):
# class DataFrame(interface.AttributeContainer):
# class Host(interface.AttributeContainer):
# class GrrFlow(interface.AttributeContainer):
# class WorkspaceLogs(interface.AttributeContainer):
# class GCSObject(interface.AttributeContainer):
# class AWSS3Object(interface.AttributeContainer):
# class AWSVolume(interface.AttributeContainer):
# class AWSSnapshot(interface.AttributeContainer):
# class OsqueryQuery(interface.AttributeContainer):
#   CONTAINER_TYPE = 'fspath'
#   CONTAINER_TYPE = 'remotefspath'
#   CONTAINER_TYPE = 'report'
#   CONTAINER_TYPE = 'gcp_logs'
#   CONTAINER_TYPE = 'aws_logs'
#   CONTAINER_TYPE = 'azure_logs'
#   CONTAINER_TYPE = 'threat_intelligence'
#   CONTAINER_TYPE = 'ticketattribute'
#   CONTAINER_TYPE = 'file'
#   CONTAINER_TYPE = 'directory'
#   CONTAINER_TYPE = 'forensics_vm'
#   CONTAINER_TYPE = 'url'
#   CONTAINER_TYPE = 'gcedisk'
#   CONTAINER_TYPE = 'gcediskevidence'
#   CONTAINER_TYPE = 'gceimage'
#   CONTAINER_TYPE = 'data_frame'
#   CONTAINER_TYPE = 'host'
#   CONTAINER_TYPE = 'grr_flow'
#   CONTAINER_TYPE = 'workspace_logs'
#   CONTAINER_TYPE = 'gcs_object'
#   CONTAINER_TYPE = 'aws_s3_object'
#   CONTAINER_TYPE = 'aws_volume'
#   CONTAINER_TYPE = 'aws_snapshot'
#   CONTAINER_TYPE = 'osquery_query'
#   def __init__(self, path: str) -> None:
#   def __init__(self, path: str, hostname: str) -> None:
#   def __init__(
#       self,
#       module_name: str,
#       text: str,
#       text_format: str = 'plaintext',
#       attributes: Optional[List[Dict[str, Any]]] = None) -> None:
#   def __init__(self, path: str, filter_expression: str, project_name: str):
#   def __init__(
#       self, path: str, profile_name: Optional[str], query_filter: Optional[str],
#       start_time: Optional[datetime], end_time: Optional[datetime]) -> None:
#   def __init__(
#       self, path: str, filter_expression: Optional[str],
#       subscription_id: Optional[str]) -> None:
#   def __init__(self, name: str, indicator: Optional[str], path: str) -> None:
#   def __init__(self, name: str, rule_text: str) -> None:
#   def __init__(self, type_: str, name: str, value: str) -> None:
#   def __init__(
#       self, name: str, path: str, description: Optional[str] = None) -> None:
#   def __init__(
#       self, name: str, path: str, description: Optional[str] = None) -> None:
#   def __init__(
#       self, name: str, evidence_disk: Union["GoogleComputeDisk", "AWSVol",
#                                             "AZComputeDisk"],
#       platform: str) -> None:
#   def __init__(self, path: str) -> None:
#   def __init__(self, name: str) -> None:
#   def __eq__(self, other: GCEDisk) -> bool:
#   def __init__(self, name: str, project: str) -> None:
#   def __init__(self, name: str) -> None:
#   def __init__(
#       self,
#       data_frame: "pandas.DataFrame",
#       description: str,
#       name: str,
#       source: Optional[str] = None) -> None:
#   def __init__(self, hostname: str, platform: str = 'unknown') -> None:
#   def __init__(self, hostname: str, flow: str) -> None:
#   def __init__(
#       self,
#       application_name: str,
#       path: str,
#       filter_expression: str,
#       user_key: Optional[str ]= '',
#       start_time: Optional[str]='',
#       end_time: Optional[str]='') -> None:
#   def __init__(self, path: str):
#   def __init__(self, path: str):
#   def __init__(self, vol_id: str) -> None:
#   def __init__(self, snap_id: str) -> None:
#   def __init__(self, query: str) -> None:


import unittest
from dftimewolf.lib.containers import containers
        name='name',
        indicator='.*',
        path='/')

    expected_attribute_names = ['attributes', 'indicator', 'name', 'path']

    attribute_names = sorted(attribute_container.GetAttributeNames())

    self.assertEqual(attribute_names, expected_attribute_names)


class FSPathDataTest(unittest.TestCase):
  """Tests for the FSPath data attribute container."""

  def testGetAttributeNames(self):
    """Tests the GetAttributeNames function."""
    attribute_container = containers.FSPath(path='name')

    expected_attribute_names = ['attributes', 'path']

    attribute_names = sorted(attribute_container.GetAttributeNames())

    self.assertEqual(attribute_names, expected_attribute_names)


class RemoteFSPathDataTest(unittest.TestCase):
  """Tests for the RemoteFSPath data attribute container."""

  def testGetAttributeNames(self):
    """Tests the GetAttributeNames function."""

# Path: dftimewolf/lib/containers/containers.py
# class FSPath(interface.AttributeContainer):
# class RemoteFSPath(FSPath):
# class Report(interface.AttributeContainer):
# class GCPLogs(interface.AttributeContainer):
# class AWSLogs(interface.AttributeContainer):
# class AzureLogs(interface.AttributeContainer):
# class ThreatIntelligence(interface.AttributeContainer):
# class YaraRule(interface.AttributeContainer):
# class TicketAttribute(interface.AttributeContainer):
# class File(interface.AttributeContainer):
# class Directory(interface.AttributeContainer):
# class ForensicsVM(interface.AttributeContainer):
# class URL(interface.AttributeContainer):
# class GCEDisk(interface.AttributeContainer):
# class GCEDiskEvidence(interface.AttributeContainer):
# class GCEImage(interface.AttributeContainer):
# class DataFrame(interface.AttributeContainer):
# class Host(interface.AttributeContainer):
# class GrrFlow(interface.AttributeContainer):
# class WorkspaceLogs(interface.AttributeContainer):
# class GCSObject(interface.AttributeContainer):
# class AWSS3Object(interface.AttributeContainer):
# class AWSVolume(interface.AttributeContainer):
# class AWSSnapshot(interface.AttributeContainer):
# class OsqueryQuery(interface.AttributeContainer):
#   CONTAINER_TYPE = 'fspath'
#   CONTAINER_TYPE = 'remotefspath'
#   CONTAINER_TYPE = 'report'
#   CONTAINER_TYPE = 'gcp_logs'
#   CONTAINER_TYPE = 'aws_logs'
#   CONTAINER_TYPE = 'azure_logs'
#   CONTAINER_TYPE = 'threat_intelligence'
#   CONTAINER_TYPE = 'ticketattribute'
#   CONTAINER_TYPE = 'file'
#   CONTAINER_TYPE = 'directory'
#   CONTAINER_TYPE = 'forensics_vm'
#   CONTAINER_TYPE = 'url'
#   CONTAINER_TYPE = 'gcedisk'
#   CONTAINER_TYPE = 'gcediskevidence'
#   CONTAINER_TYPE = 'gceimage'
#   CONTAINER_TYPE = 'data_frame'
#   CONTAINER_TYPE = 'host'
#   CONTAINER_TYPE = 'grr_flow'
#   CONTAINER_TYPE = 'workspace_logs'
#   CONTAINER_TYPE = 'gcs_object'
#   CONTAINER_TYPE = 'aws_s3_object'
#   CONTAINER_TYPE = 'aws_volume'
#   CONTAINER_TYPE = 'aws_snapshot'
#   CONTAINER_TYPE = 'osquery_query'
#   def __init__(self, path: str) -> None:
#   def __init__(self, path: str, hostname: str) -> None:
#   def __init__(
#       self,
#       module_name: str,
#       text: str,
#       text_format: str = 'plaintext',
#       attributes: Optional[List[Dict[str, Any]]] = None) -> None:
#   def __init__(self, path: str, filter_expression: str, project_name: str):
#   def __init__(
#       self, path: str, profile_name: Optional[str], query_filter: Optional[str],
#       start_time: Optional[datetime], end_time: Optional[datetime]) -> None:
#   def __init__(
#       self, path: str, filter_expression: Optional[str],
#       subscription_id: Optional[str]) -> None:
#   def __init__(self, name: str, indicator: Optional[str], path: str) -> None:
#   def __init__(self, name: str, rule_text: str) -> None:
#   def __init__(self, type_: str, name: str, value: str) -> None:
#   def __init__(
#       self, name: str, path: str, description: Optional[str] = None) -> None:
#   def __init__(
#       self, name: str, path: str, description: Optional[str] = None) -> None:
#   def __init__(
#       self, name: str, evidence_disk: Union["GoogleComputeDisk", "AWSVol",
#                                             "AZComputeDisk"],
#       platform: str) -> None:
#   def __init__(self, path: str) -> None:
#   def __init__(self, name: str) -> None:
#   def __eq__(self, other: GCEDisk) -> bool:
#   def __init__(self, name: str, project: str) -> None:
#   def __init__(self, name: str) -> None:
#   def __init__(
#       self,
#       data_frame: "pandas.DataFrame",
#       description: str,
#       name: str,
#       source: Optional[str] = None) -> None:
#   def __init__(self, hostname: str, platform: str = 'unknown') -> None:
#   def __init__(self, hostname: str, flow: str) -> None:
#   def __init__(
#       self,
#       application_name: str,
#       path: str,
#       filter_expression: str,
#       user_key: Optional[str ]= '',
#       start_time: Optional[str]='',
#       end_time: Optional[str]='') -> None:
#   def __init__(self, path: str):
#   def __init__(self, path: str):
#   def __init__(self, vol_id: str) -> None:
#   def __init__(self, snap_id: str) -> None:
#   def __init__(self, query: str) -> None:


# Path: tests/lib/containers/containers.py
import unittest
from dftimewolf.lib.containers import containers

        name='name',
        indicator='.*',
        path='/')

    expected_attribute_names = ['attributes', 'indicator', 'name', 'path']

    attribute_names = sorted(attribute_container.GetAttributeNames())

    self.assertEqual(attribute_names, expected_attribute_names)


class FSPathDataTest(unittest.TestCase):
  """Tests for the FSPath data attribute container."""

  def testGetAttributeNames(self):
    """Tests the GetAttributeNames function."""
    attribute_container = containers.FSPath(path='name')

    expected_attribute_names = ['attributes', 'path']

    attribute_names = sorted(attribute_container.GetAttributeNames())

    self.assertEqual(attribute_names, expected_attribute_names)


class RemoteFSPathDataTest(unittest.TestCase):
  """Tests for the RemoteFSPath data attribute container."""

  def testGetAttributeNames(self):
    """Tests the GetAttributeNames function."""

    attribute_container = containers.RemoteFSPath(path='name', hostname='host')